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个元素时返回。
结果如下: