“在决策树模型中考察确定性比较排序,输入为 $n$ 个互异键。每个内部结点询问“$a i<a j$?”,叶结点给出算法断言的相对次序;正确算法必须让 $n!$ 种排列到达不同答案的叶。高度 $…”
形式陈述 ​
比较排序只通过询问两个元素的相对次序来获得键信息,目标输出原元素的非降排列。执行可表示为决策树:内部节点是比较,叶节点对应可能排列。对
次比较。
直觉
比较模型刻意抹去键值的数值结构,只保留“谁小于谁”的问答;算法因此必须从比较答案中辨认众多可能的相对次序。决策树的每个叶子代表一个可区分排列,二叉比较每次至多提供一 bit 分支信息,于是叶子数量的计数信息量直接给出统一下界。这个结论约束的是比较次数,不自动约束数据搬移、缓存访问或并行深度。
例子与边界
对三个互异元素共有
插入排序的最坏复杂度为
推论与应用
数组与全序定义可比较输入,比较排序下界解释
同一比较决策树视角也能区分排序与选择算法:排序必须恢复全部相对次序,所以有
排序成本还随机器而变。外存排序以块传输次数为主,最优界同时含
参考资料
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, 2022, Chapters 6–8。
- Donald E. Knuth, The Art of Computer Programming, Vol. 3: Sorting and Searching, 2nd ed., Addison-Wesley, 1998, Chapter 5。