注意这里的树高是最大的那个深度,因此不能用第 n n n 个点的期望深度来计算。
首先根据琴生不等式,有 2 E [ X ] ≤ E [ 2 X ] 2^{\mathbf E[X]} \le \mathbf E[2^X] 2E[X]≤E[2X],因此我们考虑先计算 2 h 2^h 2h 的期望。设 d k d_k dk 为第 k k k 个节点的深度,令 t k = 2 d k t_k=2^{d_k} tk=2dk。那么由于 h = max { d k } h=\max \{d_k\} h=max{dk},所以 2 h = max { t k } ≤ ∑ t k 2^h = \max\{t_k\} \le \sum t_k 2h=max{tk}≤∑tk,因为 t k ≥ 0 t_k\ge 0 tk≥0。由此:
E [ 2 h ] ≤ E [ ∑ t k ] = ∑ E [ t k ] \begin{aligned} & \quad \mathbf E[2^h]\\ & \le \mathbf E\left[\sum t_k\right]\\ &= \sum \mathbf E[t_k] \end{aligned} E[2h]≤E[∑tk]=∑E[tk]
我们记 f k = E [ t k ] f_k= \mathbf E[t_k] fk=E[tk],易得
f k = 2 k − 1 ∑ j = 1 k − 1 f j S k − S k − 1 = 2 k − 1 S k − 1 S k = k + 1 k − 1 S k − 1 = ( k + 1 ) ⋯ 3 ( k − 1 ) ⋯ 1 S 1 = k ( k + 1 ) 2 \begin{aligned} f_k &= \frac 2{k-1} \sum_{j=1}^{k-1} f_j\\ S_k-S_{k-1} &= \frac 2{k-1} S_{k-1}\\ S_k &= \frac{k+1}{k-1}S_{k-1}\\ &= \frac{(k+1)\cdots 3}{(k-1)\cdots 1} S_1\\ &= \frac{k(k+1)}2 \end{aligned} fkSk−Sk−1Sk=k−12j=1∑k−1fj=k−12Sk−1=k−1k+1Sk−1=(k−1)⋯1(k+1)⋯3S1=2k(k+1)
由 S n ≥ E [ 2 h ] S_n \ge \mathbf E[2^h] Sn≥E[2h],可知 E [ h ] ≤ log 2 S n = 2 log 2 n + O ( 1 ) \mathbf E[h] \le \log_2 S_n = 2\log_2 n + O(1) E[h]≤log2Sn=2log2n+O(1)。由此我们证明了其树高是期望 Θ ( log n ) \Theta(\log n) Θ(logn) 级别。