在不相交的联合中,假设我们必须合并两棵高度分别为 h1 和 h2 的树。使用这种技术,如果 h1 不等于 h2,则结果合并树的高度将为 max(h1, h2),如果 h1 == h2,则为 h1+1。在从初始情况开始的任意序列合并操作之后使用此技术,包含“k”个节点的树最多具有高度(logk 的地板)。这通过归纳证明如下。
基数:当 k=1 时,高度为 0. 0<= (floor(log 1))
归纳步骤:考虑k >1并通过假设定理对所有 m 都为真,使得1<=m<k。k可以通过合并两个较小的子树来获得包含节点的树。假设这两个较小的树分别包含“a”和“b”节点,我们可以在不失一般性的情况下假设a<=b。现在a>=1,因此没有办法从初始情况开始获得具有零节点的树,并且 k=a+b。它遵循a<=k/2and b<=k+1, since k>1, bothk/2 < k和(k-1) < kand 因此a<k, and b<k。
我上面的问题是
- 我们如何得到上面的“它遵循 a<=k/2 和 b<=k+1”语句。
谢谢!