在不相交的联合中,假设我们必须合并两个高度分别为h1和h2的树。使用此技术,如果h1不等于h2,则生成的合并树的高度将为max(h1,h2),如果h1 == h2,则为h1 + 1。在从初始情况开始的任意合并操作序列之后使用此技术,包含'k'节点的树具有高度 最多(logk的楼层)。这通过归纳证明如下。
基数:当k = 1时,高度为0. 0 <=(楼层(对数1))
归纳步骤:考虑k >1
并假设所有m的误差都是1<=m<k
。可以通过合并两个较小的子树来获得包含k
个节点的树。假设这两个较小的树分别包含'a'和'b'节点,我们可以假定这些节点没有普遍性a<=b
。现在a>=1
,因此没有办法获得一棵树
从初始情况开始的零节点,并且k = a + b。 遵循a<=k/2
和b<=k+1
,,因为k>1
,k/2 < k
和(k-1) < k
,因此a<k
,和b<k
。
我上面的问题是
谢谢!
答案 0 :(得分:1)
我们假设a > k/2
,然后是b > k/2
,因为b>=a
。然后是a + b > k/2 + k/2
。因此,a + b > k
。但我们有k = a + b
!所以a > k/2
的假设会导致矛盾,因此是错误的。这证明a <= k/2
。
英文版:如果我们将k
分为a
和b
两部分,其中b
大一半,a
必须小于一半k
。