中心思想:分治
看到不少快排的变种,但是中心思想都是不变的,分治,不管是从左往右遍历也好,还是从两边往中间遍历也好,其实都是想把数据分到主元两边,其实拓展一下,主元也未必非是只有一个,两个主元,然后遍历数据分成三部分也可,只是算法实现起来稍复杂。
再拓展一下,其实快排和二叉排序树的中心思想也是相同的,都是把数据分到主元的两边,减少无关的运算。平均是O(n*ln n),当是有序序列的时候是 n方
其实还是空间和时间的转换,要程序记住的信息越多,所需要的时间就越少,反之则时间越多。
主元可以是多个,当所有的都变成主元(即记住所有数据的信息)时也就成了基数排序,复杂度就成了O(n)。
暂记