Time complexity 计算avl树高度的复杂度是多少?

Time complexity 计算avl树高度的复杂度是多少?,time-complexity,avl-tree,Time Complexity,Avl Tree,给定avl树,计算树高的“最佳”算法的时间复杂度是多少 我知道树的高度是log(n),因为树中存在n个元素。但是我如何计算高度呢?假设构成高度h树的节点数是N\u h。因此,以左子树为根的树的高度是h-1具有N_u2;(h-1)节点,而右子树的最小高度可以是h-2具有N_2;(h-2)节点,因为AVL树是平衡的(左右子树的高度差不能超过1)。 我们可以写出如下公式 N_h = N_(h -1) + N_(h -2) + 1 (i) 基本情况是N_1=1和N_2=2 及 把(

给定avl树,计算树高的“最佳”算法的时间复杂度是多少


我知道树的高度是log(n),因为树中存在n个元素。但是我如何计算高度呢?

假设构成高度h树的节点数是
N\u h
。因此,以左子树为根的树的高度是
h-1
具有
N_u2;(h-1)
节点,而右子树的最小高度可以是
h-2
具有
N_2;(h-2)
节点,因为AVL树是平衡的(左右子树的高度差不能超过1)。 我们可以写出如下公式

N_h = N_(h -1) + N_(h -2) + 1           (i)
基本情况是
N_1=1
N_2=2

(ii)
放在等式
(i)
中,我们得到

N_h = N_(h−2) + N_(h−3) + 1  + N_(h -2) + 1 
=> N_h = 2*N_(h−2) + N_(h−3) + 2 
=> N_h > 2*N_(h-2)
=> N_h > 2^(h/2)
=> log(N_h) > log(2^(h/2))
=> 2log(N_h) > h
=> h = O(log(N_h)
N
替换
N\u h
,我们可以编写

h = O(lgn)
h = O(lgn)