在最初具有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)是正确的。
这个问题的测验