算法导论笔记之渐进记号

渐进记号

Θ(theta):渐进紧确界。f(n) = Θ(g(n))表示:∃c1>0,c2>0,n0>0,s.t.对∀ n>n0,0 ≤c1g(n) ≤ f(n) ≤ c2g(n)成立。用极限表示为limn->∞f(n)/g(n) = c.

O(大欧):渐进上界。 f(n) = O(g(n))表示 :∃c>0,n0>0,s.t.对∀ n>n0,0≤ f(n) ≤ cg(n)成立。

Ω(大omega):渐进下界。f(n) = Ω(g(n))表示 :∃c>0,n0>0,s.t.对∀ n>n0,0≤ cg(n)≤ f(n) 成立。

o(小欧):非渐进紧确上界。 f(n) = o(g(n))表示 :对∀c>0,∃n0>0,s.t.对∀ n>n0,0≤ f(n) <cg(n)成立。 f(n) = o(g(n))与 f(n) = O(g(n))的主要区别在于:前者是对任意c>0,0≤ f(n) ≤ cg(n)成立,而后者是对某个c>0,0≤ f(n) <cg(n)成立。也就是说,f(n) = o(g(n))可以表示为,当n->∞时,limf(n)/g(n) = 0.

ω(小omega):非渐进紧确下界。 f(n) = ω(g(n))表示 :对∀c>0,∃n0>0,s.t.对∀ n>n0,0≤ cg(n)<f(n)成立。可用极限表示为:当n->∞时,limf(n)/g(n) = ∞.

 

我们记 f(n) = O(g(n))以指出函数 f(n) 是集合 O(g(n))的成员,即f(n)∈ O(g(n))。注意,f(n) = Θ(g(n))蕴含着f(n) = O(g(n)),也就是说,O(g(n))⊆ Θ(g(n))。同样地,Ω(g(n))⊆ Θ(g(n))。由此可得如下重要定理:

  对于任意两个函数f(n)和g(n),我们有f(n) = Θ(g(n)),当且仅当f(n) = O(g(n))且f(n) = Ω(g(n))。

 渐进记号的性质

传递性:

f(n) = Θ(g(n))且g(n) = Θ(h(n)),则 f(n) = Θ(h(n))

f(n) = O(g(n))且g(n) = O(h(n)),则 f(n) = O(h(n))

f(n) = Ω(g(n))且g(n) = Ω(h(n)),则 f(n) = Ω(h(n))

f(n) = o(g(n))且g(n) = o(h(n)),则 f(n) = o(h(n))

f(n) = ω(g(n))且g(n) = ω(h(n)),则 f(n) = ω(h(n))

自反性:

f(n) = Θ(f(n)) 

f(n) = O(f(n)) 

f(n) = Ω(f(n)) 

对称性:

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

转置性:

f(n) = O(g(n))当且仅当g(n) = Ω(f(n))

f(n) = o(g(n))当且仅当g(n) = ω(f(n))

 因为这些性质对渐进记号成立,所以,可以将两个函数f和g的渐进比较与实数a与b之间的比较做一种类比:

f(n) = Θ(g(n))类似于a = b

f(n) = O(g(n))类似于a ≤ b

f(n) = Ω(g(n))类似于a ≥b

f(n) = o(g(n))类似于a <b

f(n) = ω(g(n))类似于a >b

然而,实数的下列性质不能携带到渐进记号:

三分性:对于任意两个实数a和b,下列三种情况恰有一种必须成立:a<b,a>b或a=b。

虽然两个实数可以相互比较,但是不是所有的函数都可以渐进比较。也就是说,对于两个函数f(n)和g(n) 也许f(n) = O(g(n))和f(n) = Ω(g(n))都不成立。例如,我们无法使用渐进记号比较n和n1+sin n

 

转载于:https://www.cnblogs.com/begodlike/p/5986518.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值