[关闭]
@Jerusalem 2015-11-09 23:27 字数 2387 阅读 8000

在这里,我们给出势函数(potential function)的定义,并展示如何通过势函数给出Splay操作的均摊时间复杂度的一个上界,尽管这上界并不是紧的。




势函数定义为数据结构到实数集的一个映射。

在这里,我们假设势函数已经良定义,设为第i次操作的实际耗时,代表第i次操作结束时系统的势函数值。定义

移项,得,即

求和,得

于是,若良定义,我们只需给出的一个上界,即可给出的一个上界。




这部分我们显式地给出势函数,定义代表以x为根的子树,,定义势函数

显然,,于是我们只需要给出的一个上界。

以下我们也将




考虑Zig操作Zig

在这里我们仅仅讨论Zig,所有的推论可以等价地推广到Zag上。我们称x节点Zig后的点为X'。

Zig的T(i)显然是1,而

于是




接下来我们考虑Zig-Zag与Zig-Zig

Zig-Zag

对于一次Zig-Zag,

于是

我们又有,这是因为对数函数是凸的。

于是立即推得一次Zig-Zag对应的A有

成立。

即一次操作对应的成立。


考虑Zig-Zig

Zig-Zig

对于一次Zig-Zig,

于是依然成立。

类似地,就可推得一次操作对应的成立。




我们已经论述了三种操作的上界,同时注意到,每次操作结束后的x'恰是下次操作的x,于是不考虑Zig/Zag的情况下,我们可以对Zig-Zag和Zig-Zig的操作分别求和,即

又仅有一次Zig/Zag操作,于是

于是显然,m次操作下的

那么




参考文献:

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注