用 $h_n$ 表示按秩合并 $n$ 个点所得树的最大高度。
有 $h_1 = 0, h_2 = 1, h_3 = 1, h_4 = 2, h_5 = 2, dots$
有如下地推:
[ h_n = max_{1le ile n-1} max(h_i, h_{n-i}) + [h_i = h_{n-i} ]]
因此有
$h_{n+1} ge h_n$
$h_{2n} ge h_n + 1$
可以证明 $h_n = lfloor log n floor$
对 $n$ 用数学归纳法。
egin{aligned}
h_n &= max_{1le i le n/2} h_{n-i} + [h_i = h_{n-i}] \
&= max_{1le i le n/2} lfloor log (n-i)
floor + [lfloorlog i
floor = lfloor log(n-i)
floor]
end{aligned}
设 $n = 2^k + i$,其中 $0le i < 2^k$
$ lfloorlog i floor = lfloor log(n-i) floor implies lfloorlog i floor = lfloor log(n-i) floor = k-1$
故 $h_n = max(k, h_{n-1}) = k = lfloor log n floor$