快速排序的核心是将列表分成三部分。首先找出基准值,然后找出比基准值小的和比基准值大的,然后对比基准值小的部分和大的部分递归使用这样的方法
代码如下
def quick_sort(list):
if len(list) < 2:
return list
else:
pivot = list[0]
less = [i for i in list[1:] if i <= pivot]
greater = [i for i in list[1:] if i > pivot]
return quick_sort(less) + [pivot] + quick_sort(greater)
def main():
lst = [1, 5, 9, 3, 5, 7, 4, 2, 6, 8]
print(quick_sort(lst))
main()
结果如下
[1, 2, 3, 4, 5, 5, 6, 7, 8, 9]