Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python 面试题目—列表元素排序

Python 面试题目—列表元素排序

作者头像
MySQL轻松学
发布于 2019-09-06 03:19:56
发布于 2019-09-06 03:19:56
54900
代码可运行
举报
文章被收录于专栏:MYSQL轻松学MYSQL轻松学
运行总次数:0
代码可运行

Python题目:对列表[37,41.12,35,22,98,16,7,45,31]进行排序。

这里不考虑.sort()方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/env python
#_*_coding:utf-8_*_

def merge(left, right):
    i, j = 0, 0
    result = []
    #左右列表元素对比大小,然后加1
    while i < len(left) and j < len(right):
        if left[i] <= right[j]:
            result.append(left[i])
            i += 1
        else:
            result.append(right[j])
            j += 1
    #将大的值追加到列表右边
    result += left[i:]
    result += right[j:]
    return result

def merge_sort(lists):
    # 如果长度小于等于1,退出循环返回列表值
    if len(lists) <= 1:
        return lists
    # 取中间值,分成两个列表
    num = len(lists)/2
    # 重复操作,直到只有一个元素
    left = merge_sort(lists[:num])
    right = merge_sort(lists[num:])
    # 调用对比函数
    return merge(left, right)
    
if __name__ == "__main__":
    lists = [37,41.12,35,22,98,16,7,45,31]
    s= merge_sort(lists)
    print s

查看结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[7, 16, 22, 31, 35, 37, 41.12, 45, 98]
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MYSQL轻松学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python学习(三) 八大排序算法的实现(下)
码科智能
2018/01/03
6850
常见排序算法-Python实现
常见排序算法-Python实现 python 排序 算法 1.二分法 python    32行 #coding=utf-8 def binary_search(input_array, value): """Your code goes here.""" length = len(input_array)  left = 0 right = length-1 if length == 1:  return 0 if value == input_value[
marsggbo
2018/01/23
8370
程序员面试必备之排序算法汇总(下)
希望小小詹同学学习同时能便于他人~ ---- 本文用Python实现了快速排序、插入排序、希尔排序、归并排序、堆排序、选择排序、冒泡排序共7种排序算法。上篇已经介绍了前三种~给出原文链接如下:程序员面试必备之排序算法汇总(上) 四、归并排序 1.介绍 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。
小小詹同学
2018/04/13
6810
程序员面试必备之排序算法汇总(下)
排序时间复杂度对比
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import random 4 import datetime 5 6 #插入式排序 7 def insert_sort(list,result): 8 cnt = len(list) 9 i=0 10 for i in range(cnt): 11 right = list[i] 12 result.append(right) 1
py3study
2020/01/19
6070
排序时间复杂度对比
python技术面试题(十五)--算法
输了并不代表一无所有,你所经历的同样宝贵。如果你没有总结教训,只是沉浸在阴霾中,这样你就真的输了。
小闫同学啊
2019/07/18
6350
python技术面试题(十五)--算法
排序算法python实现
编写软件最基础莫过于算法了。今天在翻阅python的学习资料时,看到了别人用python实现的8大排序算法。很惭愧作为一个9年工作经验的程序员,现在还记得的排序只剩下冒泡排序、快速排序等寥寥几个了。于是花了数个小时将这些排序算法又仔细揣度了一番,同时再一次感叹python语言的精练。 八大排序算法 插入排序 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序。时间复杂度最好的情况为O(n),最坏的情况是O(n^2) 。是稳定的排序方法
jeremyxu
2018/05/10
7850
Python实现排序算法
本章介绍使用Python实现场景的几种排序算法。分别有冒泡算法、快速排序、插入排序、希尔排序、选择排序、堆排序、归并排序、计数排序、桶排序、基数排序。
用户3577892
2020/06/11
5240
<算法入门>快速理解7种排序算法 | python3实现(附源码)学习难度:桶排序(简化版)冒泡排序选择排序插入排序快速排序(面试常用算法)归并排序(先分后和, 分而治之)希尔排序
算法是程序的灵魂,而排序算法 是算法的入门经典,作者在此用python亲自实现了7种主流的排序算法,并做简短的说明. 排序算法 学习难度: 桶排序 < 冒泡排序 < 选择排序 < 插入排序 < 快速排
zhaoolee
2018/04/19
1.1K0
<算法入门>快速理解7种排序算法 | python3实现(附源码)学习难度:桶排序(简化版)冒泡排序选择排序插入排序快速排序(面试常用算法)归并排序(先分后和, 分而治之)希尔排序
Python实现常见的排序算法
本章介绍使用Python实现场景的几种排序算法。分别有冒泡算法、快速排序、插入排序、希尔排序、选择排序、堆排序、归并排序、计数排序、桶排序、基数排序。
夜雨飘零
2020/06/02
4790
Python算法——归并排序
归并排序(Merge Sort)是一种分治排序算法,它将数组分成两个子数组,分别对子数组进行排序,然后合并两个有序子数组以得到一个有序数组。归并排序是一种高效的排序算法,具有稳定性和适用性广泛的特点。本文将详细介绍归并排序的工作原理和Python实现。
Echo_Wish
2023/11/30
5400
排序算法:Python 实现
import sys print (sys.version) # 3.5.2 |Continuum Analytics, Inc.| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] 1、交换排序—冒泡排序 通过两两交换,小的先冒出来,大的后冒出来。O(N2),稳定,排序过程如下: 代码如下: def bubble_sort(num): n = len(num) for i in range(n):
用户1332428
2018/03/08
9440
排序算法:Python 实现
详解排序算法(Python实现)
与许多其他高级编程语言一样,Python语言提供了使用sorted()函数对数据进行开箱即用的功能。示例:
宇宙之一粟
2020/10/26
5100
数据结构与算法 - 排序与搜索排序与搜索
冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
Python攻城狮
2018/08/23
8420
数据结构与算法 - 排序与搜索排序与搜索
Python数据结构与算法 实现八大经典排序算法
在面试题中可能会遇到排序算法,毕竟作为程序员内功心法,熟练掌握排序算法是很重要的,本文总结了八大经典排序算法的 Python 实现。排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。
叶庭云
2021/12/01
3460
Python数据结构与算法  实现八大经典排序算法
排序算法对比、总结(Python代码)
排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以分为以下几类: 1、插入排
用户1332428
2018/03/30
1.4K0
排序算法对比、总结(Python代码)
【说站】python归并排序的基本思路
以上就是python归并排序的基本思路,希望对大家有所帮助。更多Python学习指路:python基础教程
很酷的站长
2022/11/23
2560
排序一栏(总结帖)
      学了很多的排序,基数排序,堆排序,希尔排序,选择排序,归并排序,快速排序,冒泡排序.....等等,尽管网上好文,如堆山之牛毛,但是还是没有自己写,来的亲切,因而唠叨数语,为以后只闲暇,积累一些看资,也仅以自己娱乐罢了,大神等,尽可鄙视之,我等小子亦是荣幸万分!      大学,我们接触的第一种排序,便是冒泡排序,那么冒泡排序的原理是什么勒?  哎,太基础啦,挫         比如一组数字   1 /*归并排序递归版 2 Coder @ Gxjun 3 2014/3/30/16:
Gxjun
2018/03/22
6670
四千字总结实现所有面试会考的排序算法【基于Python实现】
一般排序算法最常考的:快速排序和归并排序。这两个算法体现了分治算法的核心观点,而且还有很多出题的可能。
程序员迪迪
2022/01/05
2770
八大排序算法使用Python实现(干货)
比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 以上节选自维基百科
Python知识大全
2020/02/13
3490
Python 算法基础篇:归并排序和快速排序
归并排序和快速排序是两种高效的排序算法,用于将一个无序列表按照特定顺序重新排列。本篇博客将介绍归并排序和快速排序的基本原理,并通过实例代码演示它们的应用。
小蓝枣
2023/07/24
4590
相关推荐
Python学习(三) 八大排序算法的实现(下)
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验