def quick_sort(nums):
if not nums:
return []
else:
# 这里取第0个数为基点
flag = nums[0]
# 小于flag 的放到左边
left = quick_sort([ln for ln in nums[1:] if ln <= flag])
# 大于flag的放到右边
right = quick_sort([rn for rn in nums[1:] if rn > flag])
# 最后相加返回结果,别忘了flag
return left + [flag] + right a = [0, 6, 5, 4, 3, 1, 2, 3, 0]
print(quick_sort(a))

  先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它左边, 所有比它大的数都放到它右边,这个过程称为一趟快速排序

最新文章

  1. 大家一起写mvc(二)
  2. mysql慢查日志分析工具 percona-toolkit
  3. [redis] Jedis 与 ShardedJedis 设计
  4. 对比学习UIKit和AppKit--入门级
  5. ASP.NET连接数据库并获取数据
  6. VB获取浏览器版本
  7. [设计模式]&lt;&lt;设计模式之禅&gt;&gt;工厂方法模式
  8. santoku学习笔记
  9. 微软Windows 7 “可启动U盘”制作工具及使用方法,非常的简单
  10. [译]Stairway to Integration Services Level 6 - SSIS 工作流管理基础
  11. STL--G - For Fans of Statistics(两个推断条件-二分)
  12. maven(03)
  13. ps命令学习笔记
  14. Servlet&amp;JSP-HTTP报文头获取及应用
  15. 【转】mysql索引使用技巧及注意事项
  16. Lambda表达式与函数式接口
  17. Consul常用命令
  18. try finally 执行顺序问题
  19. java阶段学习目标
  20. session超时跃出iframe并跳到登陆页面(转载)

热门文章

  1. 2019牛客多校第七场C-Governing sand(线段树+枚举)
  2. 在apache hadoop2.6 上部署hive 并将hive数据源存储于Mysql
  3. Spring Cloud配置中心客户端读取配置
  4. NOIp2018 爆零记
  5. jumpserver3.0安装
  6. 從nasm assembly看函數參數傳遞
  7. CSUST 集训队选拔赛题解
  8. ArcGis 创建含孔洞面要素AO C#
  9. Vue项目引入sass
  10. offset 、 client 和 scroll - PC端网页特效