不理解AVL树中具有高度h的n个节点的递推公式,以显示h <= 2 log n

时间:2015-09-26 06:30:28

标签: recursion avl-tree recurrence proof

我知道公式为:https://maps.googleapis.com/maps/api/place/autocomplete/json?input=mumbai&radius=5020&sensor=true&key=AIzaSyB2jO4ZrvpOIg9uLTsDdy_jjpcjuWY34qA

我知道它可以减少为:

n(h) = n(h-1) + n(h-2) + 1

在这一步之后,我不明白将会发生的复发。我正在网上阅读证明,他们这样做了:

n(h) = n(h-1) + n(h-2) + 1  
    >= n(h-2) + n(h-2) + 1  
    >= 2n(h-2) + 1
    >= 2n(h-2)

我不理解那块。为什么每一步都乘以2,为什么每次从高处减去2?我在查看它或其他东西时遇到了麻烦。然后证据的其余部分显示:

>= 2n(h-2)
>= 2(2n(h-4))
>= 2(2(2n(h-6)))

我理解他们是如何根据模式得到答案的,我可以解决剩下的证据,但我不明白如何选择递归模式。我希望我有道理。如果有人能为我澄清这一点,我会非常感激!

1 个答案:

答案 0 :(得分:0)

鉴于所有n(h) >= 2n(h-2) h,我们也可以对h-2使用同样的不等式。这会给我们:

n(h-2) >= 2n(h-2-2)

相同
n(h-2) >= 2n(h-4).

如果我们现在再次为h-4应用它(就像我们对h-2所做的那样),我们就会得到

n(h-4) >= 2n(h-4-2) = 2n(h-6).

现在我们可以将这两个最后的不等式替换为第一个:

n(h) >= 2n(h-2) >= 2(2n(h-4)) >= 2(2(2n(h-6)))

依旧......