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),还望观者不吝赐教。

posted @ 2020-04-20 11:28  main(void)  阅读(139)  评论(0编辑  收藏  举报
.c_ad_block { display: none !important; } #ad_t2{ display: none !important; }