算法核心
对列表根据基准值进行分区,然后递归。
- 找出基准值
- 分区:小于基准值的元素和大于基准值的元素
- 对两个分区进行快速排序
def quicksort(array): # 快速排序
if len(array) < 2: # 只剩一个元素,直接返回
return array
else:
pivot = array[0] # 基准值
less = [i for i in array[1:] if i <= pivot] # 小于基准值
greater = [i for i in array[1:] if i > pivot] # 大于基准值
return quicksort(less)+[pivot]+quicksort(greater) # 递归
复杂度
时间复杂度
在最佳情况下:O(nlogn)
在最糟情况下:O(n*n)