算法复杂度分析中常用的五种渐近记号

一、O(Omicron)记号

O记号渐近地给出一个函数的上界和下界。当只有一个渐近上界时,使用O记号。对于给定的函数g(n),用O(g(n))(读作“大Og(n)”,有时仅读作“Og(n)”)来表示以下函数的集合:

O ( g ( n ) ) = { f ( n ) : 存在正常量 c 和 n 0 ,使得对所 n ≥ n 0 ,有 0 ≤ f ( n ) ≤ c g ( n ) } \Omicron(g(n))=\{ f(n):存在正常量c和n₀,使得对所n≥n_0,有0≤f(n)≤cg(n)\} O(g(n))={f(n):存在正常量cn0,使得对所nn0,有0f(n)cg(n)}

定义1( ϵ − N \epsilon-N ϵN语言)
f ∈ O ( g ) f \in \Omicron(g) fO(g)即:
当 N → R + , ∃ n 0 , ∀ n ≥ n 0 , ∃ c 使 f ( n ) ≤ c g ( n ) 当N \to R^+, \exists n₀,\forall n\geq n₀,\exists c使f(n) \leq cg(n) NR+,n0,nn0,c使f(n)cg(n)

定义2(求极限形式)
lim ⁡ n → ∞ f ( n ) g ( n ) = c < ∞ \lim\limits_{n \to \infty} \frac {f(n)} {g(n)}=c\lt \infty nlimg(n)f(n)=c<

二、Ω记号

正如O记号提供了一个函数的渐近上界,Ω记号提供了渐近下界。对于给定的函数g(n),用Ω(g(n))(读作“大Ωg(n)”,有时仅读作“Ωg(n)”)来表示以下函数的集合:

Ω ( g ( n ) ) = { f ( n ) : 存在正常量 c 和 n 0 ,使得对所有 n ≥ n 0 ,有 0 ≤ c g ( n ) ≤ f ( n ) } Ω(g(n))=\{f(n):存在正常量c和n₀,使得对所有n≥n_0,有0≤cg(n)≤f(n)\} Ω(g(n))={f(n):存在正常量cn0,使得对所有nn0,有0cg(n)f(n)}

定义1( ϵ − N \epsilon-N ϵN语言)
f ∈ Ω ( g ) f \in \Omega(g) fΩ(g)即:
当 N → R + , ∃ n 0 , ∀ n ≥ n 0 , ∃ c 使 c g ( n ) ≤ f ( n ) 当N \to R^+, \exists n₀,\forall n\geq n₀,\exists c使cg(n) \leq f(n) NR+n0nn0c使cg(n)f(n)

定义2(求极限形式)
lim ⁡ n → ∞ f ( n ) g ( n ) = c / ∞ \lim\limits_{n \to \infty} \frac {f(n)} {g(n)}=c / \infty nlimg(n)f(n)=c/∞

三、Θ记号

定义1( ϵ − N \epsilon-N ϵN语言)
f ∈ Θ ( g ) 即( f ∈ O ( g ) ∩ Ω ( g ) f \in \Theta(g)即(f \in \Omicron(g)\cap \Omega(g) fΘ(g)即(fO(g)Ω(g)
当 N → R + , ∃ n 0 , ∀ n ≥ n 0 , ∃ c 1 , c 2 使 0 ≤ c 1 g ( n ) ≤ f ( n ) ≤ c 2 g ( n ) 当N \to R^+,\exists n₀,\forall n\geq n_0,\exists c_1,c_2使0\leq c_1g(n) \leq f(n) \leq c_2g(n) NR+n0nn0c1c2使0c1g(n)f(n)c2g(n)

定义2(求极限形式)
lim ⁡ n → ∞ f ( n ) g ( n ) = c ( 0 < c < ∞ ) \lim\limits_{n \to \infty} \frac {f(n)} {g(n)}=c (0 \lt c \lt \infty) nlimg(n)f(n)=c(0<c<)

四、o记号

O \Omicron O记号提供的渐近上界可能是也可能不是渐近紧确的。界 2 n 2 = O ( n 2 ) 2n^2=\Omicron(n^2) 2n2=O(n2)是渐近紧确的,但是界 2 n = O ( n 2 ) 2n=\Omicron(n^2) 2n=O(n2)却不是。我们使用 ο \omicron ο记号来表示一个非渐近紧确的上界。形式化地定义 ο ( g ( n ) ) \omicron(g(n)) ο(g(n))(读作“小 ο g ( n ) \omicron g(n) οg(n)”)为以下集合:

ο ( g ( n ) ) = { f ( n ) : 对任意正常量 c > 0 ,存在常量 n 0 > 0 ,使得对所有 n ≥ n 0 ,有 0 ≤ f ( n ) < c g ( n ) } \omicron(g(n))=\{f(n):对任意正常量c>0,存在常量n_0>0,使得对所有n≥n_0,有0≤f(n)<cg(n)\} ο(g(n))={f(n):对任意正常量c>0,存在常量n0>0,使得对所有nn0,有0f(n)<cg(n)}
例如, 2 n = ο ( n 2 ) 2n=\omicron(n²) 2n=ο(n2),但是 2 n 2 ≠ ο ( n 2 ) 2n²≠\omicron(n²) 2n2=ο(n2)

定义1( ϵ − N \epsilon-N ϵN语言)
f ∈ ο ( g ) f \in \omicron(g) fο(g)即:
当 N → R + , ∃ n 0 , ∀ n ≥ n 0 , ∀ c 使 f ( n ) < c g ( n ) 当N \to R^+, \exists n₀,\forall n\geq n₀,\forall c使f(n) \lt cg(n) NR+n0nn0c使f(n)<cg(n)

定义2(求极限形式)
lim ⁡ n → ∞ f ( n ) g ( n ) = 0 \lim\limits_{n \to \infty} \frac {f(n)} {g(n)}=0 nlimg(n)f(n)=0

五、ω记号

ω记号与Ω记号的关系类似于 ο \omicron ο记号与 O \Omicron O记号的关系。我们使用ω记号来表示一个非渐近紧确的下界。定义它的一种方式是:

f ( n ) ∈ ω ( g ( n ) ) f(n)∈\omega(g(n)) f(n)ω(g(n))当且仅当 g ( n ) ∈ o ( f ( n ) ) g(n)∈o(f(n)) g(n)o(f(n))

然而,我们形式化地定义ω(g(n))(读作“小ωg(n)”)为以下集合:

ω ( g ( n ) ) = { f ( n ) : 对任意正常量 c > 0 ,存在常量 n 0 > 0 ,使得对所有 n ≥ n 0 ,有 0 ≤ c g ( n ) < f ( n ) } \omega(g(n))=\{f(n):对任意正常量c>0,存在常量n₀>0,使得对所有n≥n_0,有0≤cg(n)<f(n)\} ω(g(n))={f(n):对任意正常量c>0,存在常量n0>0,使得对所有nn0,有0cg(n)<f(n)}

例如, n 2 / 2 = ω ( n ) n²/2=\omega(n) n2/2=ω(n),但是 n 2 / 2 ≠ ω ( n 2 ) n^2/2≠\omega(n^2) n2/2=ω(n2)。关系 f ( n ) = ω ( g ( n ) ) f(n)=\omega(g(n)) f(n)=ω(g(n))蕴涵着:

lim ⁡ n → ∞ f ( n ) g ( n ) = ∞ \lim\limits_{n \to \infty} \frac {f(n)} {g(n)}=\infty nlimg(n)f(n)=

也就是说,如果这个极限存在,那么当n趋于无穷时,f(n)相对于g(n)来说变得任意大了。

定义1( ϵ − N \epsilon-N ϵN语言)
f ∈ ω ( g ) f \in \omega(g) fω(g)即:
当 N → R + , ∃ n 0 , ∀ n ≥ n 0 , ∀ c 使 c g ( n ) < f ( n ) 当N \to R^+,\exists n₀,\forall n\geq n₀,\forall c使cg(n) \lt f(n) NR+n0nn0c使cg(n)<f(n)

定义2(求极限形式)
lim ⁡ n → ∞ f ( n ) g ( n ) = ∞ \lim\limits_{n \to \infty} \frac {f(n)} {g(n)}=\infty nlimg(n)f(n)=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值