博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快速排序
阅读量:5268 次
发布时间:2019-06-14

本文共 692 字,大约阅读时间需要 2 分钟。

import random #一个列表进行排序 test_list = [34,13,57,38,3,30,58,394,92,24] '''快速排序就是将问题拆分成最小的单元,当最小单元也符合规律的时候,这是问题总的集合单元也会符合规律, 这叫做基线条件,基线值就是最小的符合蓟县条件的单元''' #排序问题的基线值就是1个元素来比较大小 def quicksort(test_list): if len(test_list) < 2: return test_list else: #index = random.randint(0, len(test_list)-1) pivot = test_list[0] #递归条件 最优的选择就是随机选择一个元素作为基线值,但是我现在无法实现因为会出现一个子列表出现为0的现象 less = [i for i in test_list[1:] if i <= pivot] qreater = [i for i in test_list[1:] if i > pivot] return quicksort(less)+[pivot]+quicksort(qreater) def main(): #index = random.randint(0,len(test_list)-1) #print(index) print(quicksort(test_list)) if __name__ == '__main__': main()

转载于:https://www.cnblogs.com/guducp/p/9158406.html

你可能感兴趣的文章
NYOJ-626-intersection set(二分查找)
查看>>
项目管理之路(1):初步踏入项目管理
查看>>
Java 中 静态方法与非静态方法的区别
查看>>
echarts饼图显示百分比
查看>>
JMS消息
查看>>
Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
查看>>
php上传文件及头像预览
查看>>
大四java实习生的一些经历
查看>>
线程池的概念
查看>>
Oracle_Statspack性能诊断工具
查看>>
转获取sql维护的表关系
查看>>
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 数组实例
查看>>
mysql启动过程
查看>>
2017前端面试题总结
查看>>
Http GetPost网络请求
查看>>
SWIFT国际资金清算系统
查看>>
Sping注解:注解和含义
查看>>