首页 / 知识
python 快速排序
2023-11-12 13:30:00
原理
快速排序使用分治法(Divideandconquer)策略来把一个序列(list)分为两个子序列(sub-lists)。
步骤
从数列中挑出一个元素,称为”基准”(pivot),
重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区结束之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。
递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。
代码
普通版
defquick_sort(list):
less=[]
pivotList=[]
more=[]
#递归出口
iflen(list)<=1:
returnlist
else:
#将第一个值做为基准
pivot=list[0]
foriinlist:
#将比急转小的值放到less数列
ifi less.append(i) #将比基准打的值放到more数列 elifi>pivot: more.append(i) #将和基准相同的值保存在基准数列 else: pivotList.append(i) #对less数列和more数列继续进行排序 less=quick_sort(less) more=quick_sort(more) returnless+pivotList+more 咳咳,下面这段代码出自《Pythoncookbook第二版》传说中的三行实现python快速排序。 defqsort(arr): iflen(arr)<=1: returnarr else: pivot=arr[0] less=[xforxinarr[1:]ifx greater=[xforxinarr[1:]ifx>=pivot] returnqsort(less)+[pivot]+qsort(greater) 当然还有一行语法糖版本: qs=lambdaxs:((len(xs)<=1and[xs])or[qs([xforxinxs[1:]ifx 是不是感受到了Python的魅力? 以上内容为大家介绍了python快速排序,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
为何你的Python代码应是扁平与稀疏
为何你的Python代码应是扁平与稀疏的,代码,培训,信息,观察,设计,工具,嵌套,闻闻,程序员,沉思,Python之禅之所以得名,正是由于它那简明扼要的规如何提速优化python代码?
如何提速优化python代码?,代码,时间,数据,新增,写法,包装,情况,下来,面临,工作,Python是一种脚本语言,相比C/C++这样的编译语言,在效率和性能方如何让Python代码更易维护
如何让Python代码更易维护,代码,项目,标准,工具,质量,地方,一致,更正,培训,控制权,检查你的代码的质量,通过这些外部库使其更易维护。可读性很python阅读代码有助于养成优秀的代
python阅读代码有助于养成优秀的代码风格,代码,培训,统一,项目,名字,风格,注释,可读性,顾名思义,成份,“优秀的代码不需要文档”,这句话虽然说Python在最短的序列参数终止时停止
Python在最短的序列参数终止时停止迭代,培训,序列,函数,版本,元素,参数,形式,以上,功能,指南,chain(p,q,...)迭代至序列p的最后一个元素后,从qPython代码统计工具
Python代码统计工具,代码,工具,注释,培训,分析,字符串,引号,脚本,语句,语言,此前实现的C代码统计工具仅能分析和统计C语言代码文件,但其设计思python阅读代码提高编码能力
python阅读代码提高编码能力,代码,概念,培训,资料,能力,时候,实例,进程,技巧,方法,在python中阅读源代码也是提高编码能力的一种途径,就像临摹python 列表元素的删除
python 列表元素的删除,代码,数据,位置,连续,异常,首次,培训,元素,列表,空隙,使用del命令删除列表中的指定位置上的元素。>>>a_list=[3,5,7,9python 列表元素访问与计数
python 列表元素访问与计数,异常,首次,培训,列表,元素,下标,对象,方法,次数,以上,使用下标直接访问列表元素,如果指定下标不存在,则抛出异常。>python 用于序列操作的常用内置函
python 用于序列操作的常用内置函数,较大,培训,列表,函数,元素,对象,参数,操作,字符串,序列,len(列表):返回列表中的元素个数,同样适用于元组、在python中如何求阶乘和斐波那契数
在python中如何求阶乘和斐波那契数列?,阶乘,较大,培训,概念,数列,解法,欧几里得,公约数,兔子,方法,之前小编向大家介绍了三种求公约数的方法,python如何读取列表中元素的位置?
python如何读取列表中元素的位置?,位置,数据,异常,培训,字符串,元素,索引,方法,示例,结果,python读取列表中元素位置的方法:1、使用index()方