2.3.21

2.3.21 #

解答 #

首先引入命题 I 的结论,对于互不相同的主键值,基于比较的排序算法的下界等于所形成的比较树的高度,即:

hlog2N! h \ge \log_2{N!}

那么我们题目即可转化为求证

hlog2(N!f1!f2!fk!)log2N! h \ge \log_2 (\frac{N!}{f_1!f_2!\cdots f_k!}) \ge \log_2 N!

这里的 fif_i 为某个主键值出现的频率,即某个主键值出现的次数,因此 fi1f_i\ge 1

根据题目给出的条件,如果主键互不重复,此时 k=Nk=N,且 f1=f2==fk=1f_1=f_2=\cdots=f_k=1

那么 f1!f2!fk!=1f_1!f_2!\cdots f_k!=1 ,待证式子即为命题 I 的结论。

那么当主键有重复时,此时 k<Nk < N,为使 f1+f2++fk=Nf_1+f_2+ \cdots + f_k=N ,至少存在一个 fm2f_m \ge 2

故此时:

f1!f2!fk!>1N!f1!f2!fk!<N!hlog2(N!f1!f2!fk!)log2N!  f_1!f_2!\cdots f_k! >1\Rightarrow \frac{N!}{f_1!f_2!\cdots f_k!}<N! \Rightarrow \newline h \ge \log_2 (\frac{N!}{f_1!f_2!\cdots f_k!}) \ge \log_2 N! \ \blacksquare

得证。

另请参阅 #

lower bounds of sorting-The University of Maryland