摘要:
平摊分析在使用时灵活性和技巧性较强,下面通过几个例子来说明具体使用 【队列的栈实现】 问题定义:使用栈实现队列:入队和出队的操作,并分析他的时间代价 队列的栈实现方法: 使用如图的两个栈实现: push:S2.push O(1) pop:若S1不空,S1.pop ; O(1) 若S1空,将S2拷贝到 阅读全文
posted @ 2020-06-21 17:27
梦里飞雪飘
阅读(294)
评论(0)
推荐(0)
摘要:
势能法介绍 平摊分析中最常用的方法 根据整个数据结构的特点设计势函数,保证初始势函数为0,整个操作序列中势函数>=0(这个特点保证了平摊代价始终大于实际代价) 对每个操作类:平摊代价 = 实际代价 + 势差 对整体操作序列:总代价 = 总平摊代价 - 势差 势函数的设计特点: 每次操作对 数据结构 阅读全文
posted @ 2020-06-21 16:43
梦里飞雪飘
阅读(1390)
评论(0)
推荐(1)
摘要:
会计法介绍 为每个操作类型分配一个平摊代价,保证在整个操作序列中平摊代价始终大于实际代价 设计思路: 需要结合数据结构的特点和算法的规律灵活设计 【栈操作】 问题定义:初始为空的栈进行push,pop,multipop操作的代价分析 设计思路: 由操作的代价规律 : push >= pop+mult 阅读全文
posted @ 2020-06-21 15:33
梦里飞雪飘
阅读(448)
评论(0)
推荐(0)
摘要:
1. 聚集法介绍 将整体操作划分成单个的原子操作,用求和的方法计算 总代价 和 平摊代价 注意:求和时运用好整体操作的规律 【栈操作】 问题定义:对初始为空的栈进行 push,pop 和 multipop三种操作 规律: 调用次数满足 pop + multipop <= push , 代价关系满足 阅读全文
posted @ 2020-06-21 15:15
梦里飞雪飘
阅读(307)
评论(0)
推荐(0)

浙公网安备 33010602011771号