
88
|
第
4
章
因此
h
> (
n/
2
)
*
(
log
(
n
)
-
1)
。这个公式有什么含义呢?它的意思就是说,对给定的
n
个
元素进行排序,必定至少存在一条从根到叶子且路径长度为
h
的路径,也就是说,这个
算法在排序的过程中进行至少需要
h
次比较。注意,
h
是由一个函数
f
(
n
)
计算出来的,
在上述情况下
f
(
n
) = (1/2)
*
n
*
log(
n
)
-
n/
2
,表示任何基于比较的排序算法都至少需要
O(
n
log
n
)
次的比较才能完成排序。
4.11 参考文献
Bentley, J. and M. McIlroy,
“
Engineering a sort function,
”
Software
—
Practice
and
Experience
, 23(11): 1249-1265, 1993,
http://dx.doi.org/10.1002/spe.4380231105
.
Blum, M., R. Floyd, V. Pratt, R. Rivest, and R. Tarjan,
“
Time bounds for selection,
”
Journal
of Computer and System Sciences
, 7(4): 448-461, 1973,
http://dx.doi.org/ 10.1016/S0022-
0000(73)80033-9
.
Cormen, T. H., C. Leiserson, R. Rivest, and C. Stein,
Introduction to Algorithms ...