【发布时间】:2018-04-29 19:31:38
【问题描述】:
我们从一棵空树开始,执行相同的插入、删除和搜索序列。一次使用 AVL 树,一次使用 WAVL 树。问题是确定我们改变AVL树中节点等级的次数是否与我们改变WAVL树中节点等级的次数相同(或乘以常数的数字)。
我认为这不是真的。让我们称序列n的长度。首先,我们进行 n/2 次插入。插入在两棵树中采用或多或少相同数量的等级提升。我们最终得到了两棵平衡的树。然后我们取一个 key 小于之前每个 key 的节点,并执行序列 insert(x)、delete(x)、insert(x)、delete(x),...(我们在剩下的 n /2 次)。
这样,AVL 树中最后的 n/2 次操作至少需要 (n/2)logn 时间,而在 WAVL 中则需要 n/2 时间(可以用势函数证明)。
【问题讨论】:
标签: data-structures insert avl-tree