算法导论学习1-c

1-3章
NP-完全问题是否存在有效的算法仍然是未知的。
如果有一个NP-完全问题有多项式时间算法,则所有NP-完全问题都有多项式时间算法。

算法的正确性

在每一轮迭代的开始时性质P成立。则称性质P为循环不变式
利用循环不变式证明算法的正确性三个步骤:
(1)初始:它在循环的第一轮迭代开始时是正确的;
(2)保持:如果在循环的某一次迭代开始时它是正确的,那么,在下一次迭代开始时它也
应该保持正确;
(3)终止:当循环结束时,循环不变式给出有用的性质,它有助于表明算法是正确的。

函数f(n)称为渐近非负函数当且仅当存在n0>0,使得当n≥n0时,f(n)≥0。

算法复杂性

算法的时间复杂性T(n):运行算法所要的时间。
算法的空间复杂性S(n):运行算法所要的内存空间。

当n变大时,T(n)的增长趋势如何确定?如果当n→∞时, (T(n)-S(n))/T(n)→0,则称S(n)是T(n)的渐近估计。通常S(n)是T(n)中去掉低阶项后留下的主项,它比T(n)更简单。

算法的最好情况时间???不懂

各种界

g(n)称为f(n)的渐近上界,记为:f(n)=О(g(n))当且仅当存在正常数 c 和 n0 ,使得当 n ≥n0 时, 0 ≤f(n)≤c .g(n) f(n)=Ο(g(n))可以认为f(n)的阶不高于g(n)的阶。

我们称g(n)为f(n)的渐近下界,记为:f(n)=Ω(g(n)) 当且仅当正常数 c 及 n0,使得当n≥n0时,f(n) ≥ c.g(n) ≥ 0。

g(n)称为f(n)的渐近紧确界,记为f(n)=Θ(g(n))当且仅当存在正常数c1,c2和n0,使得当n≥n0时,0≤c1g(n)≤f(n)≤c2g(n)。f(n)=Θ(g(n)) 可以认为f(n)的阶和g(n)的阶相同。

f(n) =Θ(g(n)) 当且仅当f(n) = О(g(n)) 且 f(n) = Ω(g(n))

g(n)称为f(n)的非紧上界,记为f(n)=о(g(n)) 当且仅当对于任意正常数c,存在正常数n0 ,当n ≥n0 时, 0≤ f(n) < c g(n)。 也可以表示为:
f(n)=о(g(n)) 可以认为f(n)的阶低于g(n)的阶。

g(n)称为f(n)的非紧下界,记为f(n)=ω(g(n)) 当且仅当对于任意正常数c,存在正常数n0 ,当n ≥ n0 时, f(n) > c g(n)≥0。 也可以表示为:
f(n)=ω(g(n)) 可以认为f(n)的阶高于g(n)的阶。

渐近记号的传递性
在这里插入图片描述
渐近记号的自反性
在这里插入图片描述
渐近记号的对称性
在这里插入图片描述
渐近记号的转置对称性
在这里插入图片描述

递归算法

递归算法是一种直接或者间接地调用自身的算法。
算法Factorial求n的时间复杂性:
在这里插入图片描述
算法Hanoi的时间复杂性T(n):T(n)=2T(n-1)+Θ(1)=Θ(2n)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值