📜  门| GATE CS 2020 |问题16

📅  最后修改于: 2021-06-29 21:56:58             🧑  作者: Mango

在最初具有n个元素的AVL树中插入n 2个元素的最坏情况下的时间复杂度是多少?
(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)是正确的。
这个问题的测验