def quick_sort(alist, start, end):
if start >= end:
return
left = start
right = end
temp=alist[start]
while left < right:
while left < right and alist[right] >= temp:
right -= 1
alist[left] = alist[right]
while left < right and alist[left] < temp:
left += 1
alist[right] = alist[left]
# 从循环退出后,left与right相遇,即left==right
alist[left] =temp
# 对左边部分执行快速排序
quick_sort(alist, start, left-1)
# 对右边部分执行快速排序
quick_sort(alist, left+1, end)
if __name__ == '__main__':
list = [6, 12, 27, 34, 21, 4, 9, 8, 11, 54, 39, 7, 3]
quick_sort(list, 0, len(list) - 1)
print(list)
Python 快速排序 (递归)
最新推荐文章于 2024-01-12 15:02:42 发布