结论
设m为最少比较次数,n为待排序元素总数。
m≥lg(n!)m≥lg(n!)m≥lg(n!)
证明
- 对基于比较的排序,所有比较操作可被抽象为一棵决策树。决策树的叶节点代表排序完成后元素序列,共有 n! 种可能。此决策树为完全二叉树。
- 显然,最坏情况下比较次数为决策树的高h-1,设为m,且对于一棵完全二叉树,叶子结点个数最多为2h−1=2m2^{h-1}=2^m2h−1=2m,又决策树叶子结点的个数不能少于排序完成后可能的元素序列个数,即n!,则有:n!≤2m→m≥lg(n!)(两边取lg)n!≤2^{m}→m≥lg(n!)(两边取lg)n!≤2m→m≥lg(n!)(两边取lg)
注:插图及证明思想来自《算法导论》(机械工业出版社)P108。