Python D&G快速排序

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)



print (quicksort([30,20,55,31]))

 有一个待解决的问题,如何每次随机选择一个数组元素作为基线值,实现O(nlogn),还望观者不吝赐教。

你可能感兴趣的:(Python D&G快速排序)