快速排序
快速排序的独特之处在于,它的速度取决于选择的基准值。
平均情况下其运行时间为O(n log n),最糟糕情况下,其运行时间为O( n2 )
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) + [poivot] + quicksort(greater)