早教吧作业答案频道 -->其他-->
算法设计分析题,求高手解答,高分考虑堆栈S,其基本操作包括:push(S,x)-元素x入栈;pop(S)-栈顶元素弹出;multipop(S,k):栈顶连续弹出k个元素(若栈中元素个数不足k个,则将栈弹空),
题目详情
算法设计分析题,求高手解答,高分
考虑堆栈S,其基本操作包括:push(S, x)-元素x入栈;pop(S)-栈顶元素弹出;multipop(S, k):栈顶连续弹出k个元素(若栈中元素个数不足k个,则将栈弹空),假设每入栈或弹出一个元素的时间成本为O(1)。请分别用聚集分析法、记账分析法、势能函数分析法证明:对含任意n个上述栈操作的序列,该序列单个操作的平均时间成本至多为O(1)
考虑堆栈S,其基本操作包括:push(S, x)-元素x入栈;pop(S)-栈顶元素弹出;multipop(S, k):栈顶连续弹出k个元素(若栈中元素个数不足k个,则将栈弹空),假设每入栈或弹出一个元素的时间成本为O(1)。请分别用聚集分析法、记账分析法、势能函数分析法证明:对含任意n个上述栈操作的序列,该序列单个操作的平均时间成本至多为O(1)
▼优质解答
答案和解析
聚集分析:n次操作最多的插入n个元素,插入删除元素个数数最多为2n,平均每次为2,即O(1)。
记账分析:设每次插入操作为2元,一元付账,一元存款,每删除一个元素(不管是pop还是multypop)为0元(插入该元素时已存了一元账),n次操作最多付2n元,平均2元,即O(1)。
势能函数分析:设势能函数f(i)为第i次操作后栈中的元素个数,显然f(i)恒大于0,f(0)=0;每插入一个元素代价为2,1是该操作代价,1是用来存储势能,f(i)=f(i-1)+1,删除一个元素操作代价为0,但栈中元素个数少了1,f(i)=f(i-1)-1,或者删除k个元素,代价为0,但f(i)=f(i-1)-k,操作代价用势能支付了,n次操作后,实际代价最多2n,平均每次也是O(1)。
记账分析:设每次插入操作为2元,一元付账,一元存款,每删除一个元素(不管是pop还是multypop)为0元(插入该元素时已存了一元账),n次操作最多付2n元,平均2元,即O(1)。
势能函数分析:设势能函数f(i)为第i次操作后栈中的元素个数,显然f(i)恒大于0,f(0)=0;每插入一个元素代价为2,1是该操作代价,1是用来存储势能,f(i)=f(i-1)+1,删除一个元素操作代价为0,但栈中元素个数少了1,f(i)=f(i-1)-1,或者删除k个元素,代价为0,但f(i)=f(i-1)-k,操作代价用势能支付了,n次操作后,实际代价最多2n,平均每次也是O(1)。
看了 算法设计分析题,求高手解答,...的网友还看了以下:
某市有-高新技术企业,下设-全资子公司,2008年以前该子公司属于高新技术企业,在子公司名下有-幢2 2020-05-19 …
在以太网中,双绞线使用()与其他设备连接起来。A.RJ-45接口B.AUI接口C.BNC接口D.RJ 2020-05-31 …
(87~90题共用备选答案)A.选择性IgA缺陷症B.胸腺发育不良C.X-连锁无丙种球蛋白血症D.X 2020-06-04 …
外周血CD40+T细胞缺乏见于A.X-连锁无丙种球蛋白血症B.X-连锁高IgM血症C.胸腺发育不全D 2020-06-06 …
钢管脚手架搭设中,无法设置连墙件,设置抛撑的话,改搭设在脚手架上的什么位置?规范上说:抛撑应采用通 2020-07-04 …
除了这些有没有别的情况也用连字符:书写法语时,连字符“-”是不能省的,必须写.1、“-”连字符除了这 2020-11-07 …
(6分)假设-推理法是在观察和分析基础上提出问题,通过推理和想像提出解释问题的假设,根据假设进行演绎 2020-11-21 …
宏观经济论述题我们在宏观经济学中学习了三个基本模型:收入-支出决定模型、IS-LM模型以及AD-AS 2020-11-27 …
按下图程序计算,若开始输入的值为3,则输出的结果为n为奇数--2n+6是输入整数n<>(>100)- 2020-12-09 …
意大利物理学家伽利略在《两种新科学的对话》一书中,详细研究了落体运动,他所运用的方法是A.假设-观察 2020-12-28 …