渐进最优排序
快排:由一个基准元素,把序列分解为三部分,
大于基准,等于基准,小于基准。
然后对前后子集进行排序,
最后三部分依次合并。
关键在于如何选择基准元素,可随机,也可前中后元素选择中位数
不用递归,可以开辟堆栈,最大空间O(n),
如果按左右子集个数少的后进栈先排序,空间可变O(logn)
合并:直接划分平均两个部分,递归排序,各自有序,最后合并。
关键在于如何合并子序列,两个数组,各自游标依次对比。
不用递归,可以把元素组中大于1且有序的子集看出独立,然后两两合并。
都是nlogn的时间复杂度