基础排序——快速排序之Python

def quicksort(array):
    if len(array) < 1:
        return array
    else:
        num = array[0]
        less = [i for i in array[1:] if i < num]
        greater = [i for i in array[1:] if i > num]
        return quicksort(less)+[num]+quicksort(greater)
print(quicksort([10,5,2,3]))

用Python写快排简直不要太简单,用分治算法,我这里每次取第一个元素,把剩下的元素和第一个元素比较,生成了两个list,less就是剩下所有比第一个元素小的list,more是剩下比第一个元素大的list。然后递归,直到遇到基线条件只有一个元素或0个元素时返回。

结果如下:


猜你喜欢

转载自blog.csdn.net/zzqzzq123456/article/details/80089023
今日推荐