def quicksort(array): if len(array)<2: return array else: pivot = array[0] # 基准点 small = [i for i in array[1:] if i <= pivot] # 找到小于基准点的部分 big = [i for i in array[1:] if i > pivot] # 大于基准点的部分 return quicksort(small) + [pivot] + quicksort(big) # 合并 print(quicksort([10,2,6,12,39,10]))
对于一个待排序的列表,先选一个基准值,让列表中的元素和这个基准值对比,分成两部分:大于这个值的部分、小于这个值的部分,再分别对这两个部分进行找基准值的操作,最后将这个最小部分、基准值、最大部分合并。
原文:https://www.cnblogs.com/wztshine/p/13031437.html