- 问题描述
假定我们对一个数据结构执行一个由n个操作组合成的操作序列,当i 严格为2的幂时,第i个操作的代价为i ,否则代价为1。使用聚合分析确定每个操作的摊还代价。 - 问题求解
假设ci是第i个操作的代价,则
ci={ii是2的幂1其他
n 个操作的代价是
∑i=1nci≤n+∑j=0⌈lgn⌉n2j≤n+n+n2+n4+...+2+1=n+n−121−12=n+(2n−1)<3n
使用聚合分析确定每个操作的摊还代价为O(n)/n=O(1)。在上面的求解过程中用到了等比数列前n项和公式
a11−qn1−q=a1−anq1−q
算法导论17.1-3
最新推荐文章于 2022-09-18 14:38:30 发布
本文探讨了一种数据结构中操作序列的成本分析方法。通过对特定条件下的操作代价定义,利用聚合分析法确定了每个操作的摊还代价,并证明了其时间复杂度为O(1)。
1136

被折叠的 条评论
为什么被折叠?



