快速排序python实现
代码
def quick_sort(alist, start, end):
"""
快速排序
:param alist: 待排序的列表
:param start: 第一个元素的索引
:param end: 最后一个元素的索引
:return: 已排序的列表
"""
# 递归的退出条件,只有一个元素
if start >= end:
return
mid = alist[start]
low = start
high = end
while low < high:
while low < high and alist[high] >= mid:
high -= 1
alist[low] = alist[high]
while low < high and alist[low] < mid:
low += 1
alist[high] = alist[low]
alist[low] = mid
quick_sort(alist, start, low - 1)
quick_sort(alist, low + 1, end)
return alist
alist = [54, 26, 93, 17, 77, 31, 44, 55, 20]
blist = quick_sort(alist, 0, len(alist) - 1)
print(blist)