证明:如果作用于一动态表上的第i个操作是TABLE-DELETE,且αi-1 ≥ 1/2,则以势函数(17.6)表示的每个操作的平摊代价由一个常数从上方限界

来源:互联网 发布:淘宝几十块钱的vr质量 编辑:程序博客网 时间:2024/06/07 05:08

这是《算法导论》(原书第二版)中第17章的一个习题(17.4-2)。

分成三种情况讨论:

1αi 1/2

这时表并没有进行扩张或收缩,只是表中的项数少了1

平摊代价

^Ci

=

ciii-1

 

=

1 + (2 · numi - sizei) - (2 · numi-1 - sizei-1)

= 1-2 =-1

2)  1/4<=αi < 1/2

这时表并没有进行扩张或收缩,除了表中的项数少了1

^Ci =

ciii-1

 

=

1 + (sizei /2 - numi) - (2 · numi-1 - sizei-1)

     

=3+3/2 sizei-1 -3 numi-1

=3+3(1/2 -αi-1) sizei-1<=3

 

3) αi<1/4

这种情况只对sizei-1等于2时,numi-1等于1时才会发生。

这时,需要对表进行两次收缩才能满足1/4<=αi <=1,这样表变成一个空表,尺寸和项数都是0

平摊代价:

^Ci =1

因此,平摊代价至多为3

 

原创粉丝点击