基于比较的排序算法的时间复杂度下界的证明
希尔排序
基于比较的排序算法的时间复杂度下界的证明
引言
众所周知,在所有基于比较的排序算法中,最坏时间复杂度的下界是 不知道的现在知道了。
注意是最坏时间复杂度,否则有序数列我暴力插入
下面进行一个简单的证明,相信大家都能看懂看不懂的多看几遍。
决策树模型
首先,我们需要明确的是,基于比较的排序算法,核心操作就是比较两个元素的大小。每次比较都是一个二分结果,要么小于、要么不小于。换句话说,这些算法的所有决策都可以抽象为一个决策树:
- 决策树的每个内部节点代表一次元素间的比较;
- 每个叶子节点对应一个排序结果;
- 从根节点到叶节点的路径就是排序算法的决策流程。
显然,这个决策树必须覆盖输入的所有可能排列Bogosort:我没意见,才能得出排序的正确结果。
因此
对于
对两边取对数得到:
这意味着,任何基于比较的排序算法最坏情况下至少需要
关于 \log_2(n!)
\texttt{Stirling} 公式
接下来,我们需要计算 大特林公式
通过集中注意力,我们可以注意到:
可以看到,谁要是突破了发论文记得挂我个八作
结论
综上所述,我们已经严格证明了:基于比较的排序算法无法突破
完结撒花✿✿ヽ(°▽°)ノ✿✿