📜  门| GATE CS 2020 |问题 16

📅  最后修改于: 2021-09-25 06:26:57             🧑  作者: Mango

最初将 n 2 个元素插入具有 n 个元素的 AVL 树的最坏情况时间复杂度是多少?
(A) Θ(n 4 )
(B) Θ(n 2 )
(C) Θ(n 2 log n)
(D) Θ(n 3 )答案: (C)
说明:由于AVL树是平衡树,所以高度为O(log n)。因此,在最坏的情况下,在 AVL 树中插入元素的时间复杂度为 O(log n)。

笔记:

Every insertion of element:
Finding place to insert = O(log n)
If property not satisfied (after insertion) do rotation = O(log n)

So, an AVL insertion take = O(log n) + O(log n) = O(log n) in worst case. 

现在,给定 n 2 个元素需要插入给定的 AVL 树,因此,总时间复杂度将为 O(n 2 log n)。

替代方法:最坏情况下的时间复杂度,

1st insertion time complexity = O(log n)
2nd insertion time complexity = O(log(n+1))
.
.
.
n2th insertion time complexity = O(log(n + n2)) 

所以,总时间复杂度为,

= O(log n) +  O(log n+1)) + .... +  O(log(n + n2))
= O(log n*(n+1)*(n+2)*...(n+n2))
= O(log nn2)
= O(n2 log n) 

选项(C)是正确的。
这个问题的测验