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