浅谈渐近记号

渐近记号定义

据knuth:
1>*O(g(n)): 定义F(n)集合,存在c>0,n0属于|N|,对于一切n>n0,都有|f(n)|≤cg(n)成立。*
CLRS定义略有区别,将|f(n)|改为它本身,既就是0≤f(n)≤cg(n)
2>*Ω(g(n)):定义F(n)集合,存在c>0,n0属于|N|,对于一切n>n0,都有0≤cg(n)≤f(n)成立。*
3>*Θ(g(n)):定义F(n)集合,存在c>0,n0属于|N|,对于一切n>n0,都有0≤c1g(n)≤f(n)≤c2g(n)成立。*

形象化解释

O是基本形状,Ω和Θ有点像,但意义不同。
O是边界,不可超过的上界,圈住内部的一种体现。
Ω相对于大O记号有变化,支脚Ω,定义了函数的下界。
Θ给出了较为紧致的界限,即为上界又为下界。H撑在边界上。
H与我们的等号有点像,H有左右,横线在中间c1g(n)≤f(n)≤c2g(n)
#符号“∈”用起来不方便。
3n = O(n) = O(n2)更简洁,用起来更方便
图片来源链接

实例

例:
f(n) = 32n2- 10n + 5 = O(n2)
f(n) ≤ cn2 ,c取系数绝对值之和。即32+5+10=47。
0 ≤ 32n2- 10n + 5 ≤ 32n2 + 10n2 + 5n2 (1≤n)
取c=47,取n0=1, 对于一切n>n0,都有|f(n)|≤cg(n)成立。
#任何满足O(n),一定满足O(n2)。
例:
f(n) = 32n2- 10n + 5 = Ω(n2)
cn2≤ f(n),c取最高项的系数的一半。即16。
16n2 ≤ 32n2- 10n + 5 and 0 ≤ 16n2 - 10n + 5
取c=16,n0=0,对于一切n>n0,都有0≤cg(n)≤f(n)成立。
推论: 32n2- 10n + 5 = O(n2) = Θ(n2)
感谢图片提供方谢老师

不需要精确的证明集合的存在个数,只需要证明它的成立。
考虑ad>0,多项式为f(n) = adnd+ ad-1nd-1+…+a0。
练习 : f(n) = O(nd) , 细节在于f(n)何时大于等于0。
例子 :
f(n) = Ω(nd)
f(n) ≥ a d 2 \frac{a_d}{2} 2adnd
a d 2 \frac{a_d}{2} 2adnd ≥ -ad-1nd-1-ad-2nd-2-…-a0
a d 2 \frac{a_d}{2} 2adnd ≥ ( ∑ i = 0 d − 1 ∣ a i ∣ \displaystyle\sum_{i=0}^{d-1} |a_i| i=0d1ai)nd-1≥-ad-1nd-1-ad-2nd-2-…-a0
n≥ ∑ i = 0 d − 1 ∣ a i ∣ \displaystyle\sum_{i=0}^{d-1} |a_i| i=0d1ai / ad
n0取max{1, ∑ i = 0 d − 1 ∣ a i ∣ \displaystyle\sum_{i=0}^{d-1} |a_i| i=0d1ai / ad}
定理: 如果ad> 0, ∑ i = 0 d a i n i \displaystyle\sum_{i=0}^{d} a_in^i i=0daini = Θ(nd)

极限

设f(n)和g(n)是定义域为自然数集合的函数。lim n趋近于无穷大时, f ( n ) g ( n ) \frac{f(n)}{g(n)} g(n)f(n) = c >0 ,f(n) = Θ(g(n))。

此外,还有o记号等记号,详情可参考博客算法导论------渐近记号Θ、Ο、o、Ω、ω详解

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值