【发布时间】:2020-12-15 21:52:54
【问题描述】:
我的教授在课堂上展示了以下问题,并提到答案是 O(1),而我的完全不同,我希望得到一些帮助,知道我犯了什么错误。
问题:
计算 AVL 树中 F 方法的 摊销时间复杂度,当我们从最小节点开始并且每次调用 F 超过最后找到的成员时。
F的描述:当我们在特定的节点F时,就像从当前节点开始的中序遍历一样,一直到下一个节点,按顺序遍历下一次调用。
我做了什么:
首先,我对 F 进行了一系列随机的 m 次调用。
我说对于第一个我们需要 O(log n) - 找到最小的节点然后对于下一个节点我们需要再次做 inorder 但继续一个步骤所以 O(log n)+1 以此类推直到我扫描 m 个元素。
这让我:
为了计算摊销时间,我们做 T(m)/m 然后我得到:
肯定不是 O(1)。
【问题讨论】:
标签: algorithm time-complexity avl-tree tree-traversal amortized-analysis