【算法导论】第8、9章,线性时间排序,中位数顺序统计量

8.1 排序算法下界

比较排序:次序依赖之间的比较:

由于两两比较,因此可以用决策树来刻画,那么节点数就要满足大于 n!, 那么就需要nlogn级别的比较数量。

8.2  计数排序

n个输入数据,每个都是0-k之间的整数。

算法:从头到尾遍历数组,把0-k累积的数量记一下,然后做累和,然后再遍历一遍,一个一个放进去,每放进去一个对应位置-1

8.3 基数排序

8.4 桶排序

使用场景:排序的数服从[0, 1]均匀分布

排序方式:将[0, 1]等分成n段,先放入段内,再在段内排序。

9 中位数和顺序统计量

选择问题:n个数中选取第i个顺序统计量的问题。

9.1 最小值和最大值

显然有O(n)的算法。同时找最小值最大值的话,可以两个一起找。

9.2 期望线性时间

与快速排序类似,采用分治思想,只需要处理划分的一边就可以了,期望时间是线性的。

9.3 最坏线性时间

稍后补充

原文地址:https://www.cnblogs.com/yesuuu/p/8810889.html