def quick_sort(alist, first, last):
if first >= last:
# 如果开始等于结尾,即就一个元素
return
mid_value = alist[first]
low = first
high = last
# 对于相等的情况都放到low的位置,所以第一个条件是>=.数据尽量放在一边。
while low < high:
# hight开始移动,左移所以-1
while low < high and alist[high] >= mid_value:
high -= 1 # high游标左走
alist[low] = alist[high] # 把大于mid的值放到low的位置
# low开始移动
while low < high and alist[low] < mid_value:
low += 1
alist[high] = alist[low]
# high -= 1 # high游标左走
# 当low=high时从循环退出
alist[low] = mid_value
# 或者
# alist[high] = mid_value # 对low左边的列表排序
quick_sort(alist, first, low - 1)
# 对low右边的列表排序
quick_sort(alist, low + 1, last) if __name__ == '__main__':
arr = [1, 2, 3, 94, 5, 6, 6, 6, 6]
quick_sort(arr, 0, len(arr) - 1)
print(arr)

最新文章

  1. phpcms 表单提交发送邮件
  2. Visual Studio 2015 CTP6 发布
  3. BlockingQueue 阻塞队列,很有用的一种
  4. 浅谈php中使用websocket
  5. 1028作业:Java语法基础
  6. PHP面向对象的一些深入理解
  7. Android 布局简要范例
  8. Eclipse Java EE 编译器设置JSP默认编码
  9. phpExcel导出excel的类,每步都有说明
  10. 0x02全局变量和局部变量
  11. Python之路【第一篇】:Python前世今生
  12. 关于volatile
  13. OpenStack Keystone v3 API新特性
  14. 通知/代理/block 三者比对
  15. 一个简单的win32窗口
  16. Docker镜像的构成__Dockerfile
  17. cocos2dx 3.4 测试例 目录
  18. 0001-20180421-自动化第一章-python基础学习笔记
  19. polyfill-eventsource added missing EventSource to window ie浏览器 解决方案
  20. Mysql高级第一天(laojia)

热门文章

  1. StoneTab标签页CAD插件 3.2.5
  2. MyEclipse优化攻略搜集
  3. css的一些样式
  4. 三次样条插值 cubic spline interpolation
  5. Hadoop_14_MapReduce框架结构及其运行流程
  6. java_变量和常量
  7. RNN基础
  8. CCPC2019厦门站游记
  9. centos 最小化安装pycharm
  10. Ubuntu 18.04实现实时显示网速