Skip to content

定理Theorem

比较排序下界

施工中 · 内容逐步修订

Comparison sorting lower bound

任何最坏情形比较排序都需 Ω(n log n) 次比较。

形式陈述 ​

在决策树模型中考察确定性比较排序,输入为 n 个互异键。每个内部结点询问“ai<aj?”,叶结点给出算法断言的相对次序;正确算法必须让 n! 种排列到达不同答案的叶。高度 h 的二叉树至多有 2h 片叶,于是最坏比较次数满足

2h≥n!,h≥⌈log2⁡(n!)⌉=Ω(nlog⁡n),

这里的 Ω(nlog⁡n) 按渐近记号概括输入规模增长时的下界;末一步由 Stirling 公式 log2⁡(n!)=nlog2⁡n−nlog2⁡e+O(log⁡n) 给出。平均情形同阶:叶数为 n! 的二叉树的平均叶深至少 log2⁡(n!),故对均匀随机排列,期望比较次数同样是 Ω(nlog⁡n)。这一结论也覆盖始终输出正确结果的 Las Vegas 随机化比较排序:固定随机比特后得到一棵确定性且仍然正确的决策树,对均匀输入取平均后再对随机比特取平均,仍有 Ω(nlog⁡n) 的期望成本,因此至少存在一个输入使算法的期望比较次数达到该量级。若允许算法以正概率输出错误答案,则必须另外固定错误概率与成功标准,并使用 Yao 极小极大原理等分布式下界工具,不能直接沿用上述零错误论证。

直觉

这是一条排序专用的信息论下界:算法必须区分 n! 种相对次序,而一次二元比较只产生一个 bit 的分支。逐次维持合法回答、延迟承诺具体输入的通用证明方式见对手下界方法;本页只使用叶数计数。把比较看成返回一位答案的 oracle query 时,这也是查询下界的一个特例,但结论只约束这种访问接口。Word-RAM 可以读整数位并把键值用于寻址;通信模型计算双方交换的 bit;外存模型计算块传输。三者的单步信息与资源单位都不同,不能直接继承这棵比较树的高度下界。

比较排序的叶数计数下界
例子与边界

小规模可以完全算清:n=3 时 ⌈log2⁡6⌉=3,故任何比较排序最坏至少 3 次比较;插入排序恰以最坏 3 次完成三元素排序,说明该下界在小规模处可以取到。渐近方向,归并排序与基于二叉堆的堆排序都只用 O(nlog⁡n) 次比较,与下界匹配,因而在比较模型中渐近最优。

边界之一:绕过模型不算违反下界。计数排序直接把键值当下标使用,时间 O(n+k);基数排序按数位分配,时间 O(d(n+k))——对范围在 [0,n2) 内的整数取基数 n 只需两趟,总计 O(n),胜过 nlog⁡n 而与定理无矛盾,因为它们不做两两比较。之二:下界针对互异键的最坏(或均匀平均)情形;若键只有 k 种取值或输入接近有序,可区分的输出减少,自适应算法确实能少比较,但对一般互异输入,任何比较排序都无法整体逃出该界。之三:计量对象是比较次数,搬移、缓存等开销另算——不过在比较模型中总运行时间不低于比较数,故时间下界随之成立。

推论与应用

决策树模型固定了本页每步能问什么,对手下界方法则把“延迟承诺输入、始终返回合法回答”推广到不能只数叶子的场景。在长度 n 的先假后真谓词序列中,有 n+1 个可能分界;每次只询问一个位置的真假,最坏至少需要 ⌈log2⁡(n+1)⌉ 次询问。二分查找的分界版本达到这个界。精确成员查找若采用三路比较,应另按其允许分支论证,不能直接套用这句精确常数;前驱问题若仍只允许比较也受相似障碍,但 Word-RAM 可读取整数位,因此必须另看对应模型的上、下界。

把排序归约到另一个问题,才能把排序下界传递给该问题,并且必须保持所用计算模型:把数 xi 提升为抛物线上的点 (xi,xi2) 后,平面凸包的有序顶点序列能读出排序;输出起点和方向可在线性时间内整理。但一般凸包算法允许几何谓词,不能仅凭这次变换就把二元键比较树的下界搬过去,需在相应的代数决策树模型中另证排序下界。

外存中的瓶颈是块传输,排序 I/O 下界需要同时计 N,B,M,不能从 Ω(nlog⁡n) 次比较除以块大小得到。

用比较型优先队列先插入全部互异键,再逐次取最小,就能完成排序。因此插入与取最小不能都具有摊还 o(log⁡n) 的保证;零错误随机化也不能让插入和取最小在所有输入上同时具有期望摊还 o(log⁡n),因为排序的期望下界仍适用。整数键或其他更强原语则改变了模型。

参考资料
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, 2022,§8.1:比较排序与决策树下界。
  • Donald E. Knuth, The Art of Computer Programming, Vol. 3: Sorting and Searching, 2nd ed., Addison-Wesley, 1998,Vol. 3, §5.3.1, minimum comparison counts for sorting。
关系图谱14 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系