展开树的摊销成本:成本+ P(tf) - P(ti)≤3(rankf(x) - ranki(x))解释

时间:2011-06-08 07:12:41

标签: algorithm data-structures amortized-analysis splay-tree

在阅读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操作,因此只增加一个常量。}

我无法解释这一点。有人可以详细解释上面的内容。如果可能,举一些例子。

请提供一些链接,以解释其他定义树的定理

由于

1 个答案:

答案 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)

您可以将其概括为整个操作以计算摊余成本。

我想这证明了你的结果,但我不确定这是你在想什么。