【问题标题】:what is amortized complexity in splay tree?展开树中的摊销复杂度是什么?
【发布时间】:2023-03-31 02:16:01
【问题描述】:
我试图了解摊销的复杂性并在网上进行了几次搜索,但我还没有找到好的资源。
那么任何人都可以解释什么是摊销复杂度以及它如何在每次操作的展开树中变成 O(lg n) 吗?
【问题讨论】:
标签:
algorithm
tree
binary-search-tree
time-complexity
graph-algorithm
【解决方案1】:
在展开树上执行的任何操作,无论是插入删除..等,成本都由展开操作决定。因此仅考虑展开操作的成本,即在要展开的节点上执行的旋转。
The amortized function is given by a=c+3Rfinal(v)-3Rinitial(v)
其中a是摊销成本,c是实际成本,Rfinal是展开操作后的排名,Rinitial是旋转前节点的排名。(任何节点的排名由其子树的高度给出,即log |S| 其中 S 是其下的节点数)
现在考虑最坏的情况,其中节点要展开,是叶子,因此它的初始等级由 0 给出。
在将其展开到顶部后,即作为根节点,它的排名变为 log n,其中 n 是树中的节点总数。
a<= 2+3logn-0
O(logn).