算法导论 3-5

问题

某些作者定义 的方式和我们的略有不同,可以用 来表示这种定义。若存在正常数c使f(n)>=cg(n)>=0对无穷多的整数n成立,则说
a)说明渐近非负的两个函数f(n)和g(n),要么f(n)=O(g(n)),要么f(n)= (g(n)),要么二者都成立,然而用 代替 时并不成立。
b)请描述用 代替 以刻画程序运行时间的潜在有点和缺点。
某些作者定义的O也略有不同,设为O'。称f(n)=O'(g(n))当且仅当|f(n)|=O(g(n))。
c)如果我们用O'代替O而仍然使用 ,定理3.1的“当且仅当”的两个方向各有什么变化。
有些作者定义 表示略去了对数因子的O。
={f(n):存在正常数c,k,n0使得0<=f(n)<=cg(n) ), 对所有n>=n0成立}。
d)请类似地定义 ,并证明与定理3.1的关系

分析

a)如算法导论3.1节所述,O, 不满足三分性,所以对于任意两个非负渐近函数不能满足题目所说的关系。原因就是对于只有局部单调递增函数,上述关系不能满足。例如3-1中问题b)中所给出的函数。而 克服了这个限制。例如对书中给出的f(n)=n和 就有f(n)= g(n)。同时,因为满足 必然满足 ,所以满足 必然满足 。所以以 代替了 后,两个渐近非负函数必然满足三种关系的一种。
b)优点:可以刻画任意两个渐近非负函数之间的关系。

缺点:程序运行的渐近下界变得比较模糊,不这么精确了。因为如果f(n)(g(n))也有可能存在f(n) < g(n)的情况。

c)定理3.1只能是充分条件不是必要条件了,因为f(n)>=cg(n)可以推出|f(n)|>=cg(n)但是 |f(n)|>=cg(n)不能推出f(n)>=cg(n)

d) ={f(n):存在正常数c,k,n0使得0<=cg(n) <=f(n), 对所有n>=n0成立}。
={f(n):存在正常数c1,c2,k,n0使得c1g(n) <=f(n)<=c2g(n) , 对所有n>=n0成立}。
类似与定理3.1,可以推出充分条件,不能推出必要条件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值