快速排序
优秀快排写法
此文章python写法
快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists)。...这样一次排序就造成了整体上的有序化。
子数列排序:将小于子数列和大于子序列分别继续快速排序
递归到最底部,数列是零或一,至此,递归结束
?...,选择的基数使得分正左右两个子序列长度接近(分区平衡),快排的效率越高.反之使得分区不平衡,快排的效率会降低....对于普通快排,我们将等于的数一并放到左边后者右边,在一般情况下,排序效率都很快,能达到O(nlogn),
但是当序列含有大量相等数字时,普通快排会使得大量等于的数集中位于某一边,造成分区不平衡的问题,使得普通快排退化成...O(n^2),
这时对于等于的数的处理就显得很重要了,针对普通快速排序的改进版本——双路排序和三路排序,就应运而生了。