快速排序 -- 不稳定算法
程序员文章站
2022-03-12 16:57:45
...
基本原理
1, 从数列中挑出一个元素,作为 “基准”值
2, 重新排序数列,将所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)
3, 把小于基准值元素的子数列和大于基准值元素的子数列排序进行递归操作
助理解
code
def quick_sort(lst):
if len(lst) <= 1:
return lst
pivot = lst.pop() # 选取基准值
# left列表为lst中比基准值小或等于的数 组成的列表
left = [element for element in lst if element <= pivot]
# right列表为lst中比基准值大的数 组成的列表
right = [element for element in lst if element > pivot]
# 对left列表和right列表递归排序
return quick_sort(left) + [pivot] + quick_sort(right)