在阅读splay树时,我发现了一些关于splay节点'X'的等级和维基百科中的摊销成本的表达式。它被给予, { 我们可以通过以下方式约束任何zig-zig或Zig-zag操作的摊销成本:
amortized cost = cost + P(tf) - P(ti) ≤ 3(rankf(x) - ranki(x)),
其中x是朝向根移动的节点,下标“f”和“i”分别表示操作之后和之前。当对整个展开操作求和时,这个望远镜达到3(秩(根)),即O(log n)。由于最多只有一个zig操作,因此只增加一个常量。}
我无法解释这一点。有人可以详细解释上面的内容。如果可能,举一些例子。
请提供一些链接,以解释其他定义树的定理
由于
答案 0 :(得分:1)
您想对静态展开树进行简单的摊销分析。 如果您像维基百科上的示例那样采用一个基本的锯齿形。这是最糟糕的情况。 你有:
P(tf) - P(ti)≤3(rankf(x) - ranki(x))
证明: 使用维基百科上使用的符号,因为x在转换后位于树的根部,所以很容易得到:
rankf(x)> = rankf(g)和rankf(x)> = rankf(f)
因此,
Ptf = rankf(x)+ rankf(g)+ rankf(p)< = 3 * rankf(x)
在转换之前使用与x相反的推理得到:
Pti = ranki(x)+ ranki(g)+ ranki(p)> = 3 * ranki(x)
您可以将其概括为整个操作以计算摊余成本。
我想这证明了你的结果,但我不确定这是你在想什么。