# -*- coding: utf-8 -*-
# author: zhonghua
# filename: sort_quick.py
# create: 2016/3/28
# version: 1.0
# 快速排序
def quick(lst, left, right):
if left >= right:
return
key = lst[left]
low = left
high = right
# 大循环
while low < high:
# 必须是lst[high] >= key, 否则left和right会停在一个位置重复循环
while low < high and lst[high] >= key:
high -= 1
lst[low] = lst[high]
# 这里不能是lst[low] <= key, 否则会出现low超出lst范围的情况
while low < high and lst[low] < key:
low += 1
lst[high] = lst[low]
lst[low] = key
# 递归
quick(lst, left, low)
quick(lst, low + 1, right)
if __name__ == '__main__':
lst = [19, 28, 30, 5, 8, 60, 72, 94, 68, 28]
quick(lst, 0, len(lst)-1)
for i in lst:
print i
Python 排序 快速排序
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 个人技术博客地址:http://songmingyao.com/ 原理 在列表中挑选出一个基准值 将列表中的其它元...
- list=['2','4','5','22','6','8','12']; def function_name(l...
- 快速排序是一种非常优秀的排序方法 ,更多见:李飞阳 http://feiyang.li/ 对于包含n个数的输入数组...