第17章 摊还分析

摊还分析的三种方法:聚合分析、核算法与势能法

在摊还分析中,我们通过求数据结构的一个操作序列中所执行的所有操作序列的平均时间来评价操作的代价,这个平均时间也称为摊还代价,它保证最坏情况下每个操作的平均性能。在分析摊还时间时,有三种分析方法可以采用,分别是聚合分析核算法势能法

聚合分析:

利用聚合分析,我们证明对所有n,一个n个操作序列最坏情况下花费的总时间为T(n)。因此,在最坏情况下,每个操作的平均代价,或者是摊还代价为T(n)/n。需要注意的是,此摊还代价是适用于每个操作的,即使序列中有多种类型的操作也是如此。因此在这种方法中一个操作序列中不同的操作具有相同的摊还时间。

核算法:

在用核算法进行摊还分析时,我们对不同的操作赋予不同费用,我们将赋予一个操作的费用称为它的摊还代价,因此在核算法中,不同的操作具有不同的摊还代价。当一个操作的摊还代价超出其实际代价时,我们将差额存入到数据结构中的特定对象中,存入的差额称为信用,对于后续操作中摊还代价小于实际代价的情况,信用可以用来支付差额。因此我们可以将一个操作的摊还代价分解为实际代价和信用。我们必须小心的选择操作的摊还代价,以保证对所有操作序列来说,其摊还代价总和会大于等于其实际代价的总和,也就是说要保证数据结构中的总信用永远为非负

势能法:

势能法摊还分析并不将预付代价表示为数据结构中特定对象的信用,可是表示为势能,将势能释放即可用来支付未来操作的代价并且不同于核算法,我们是将势能与整个数据结构而不是特定对象联系在一起的。所以在进行势能法分析时,我们需要先确定一个势函数,然后再通过关系式去求解每个操作的摊还代价。此势函数应该要满足对所有操作序列,其值应要大于等于0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值