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