一、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):存在正常量c和n0,使得对所n≥n0,有0≤f(n)≤cg(n)}
定义1(
ϵ
−
N
\epsilon-N
ϵ−N语言):
f
∈
O
(
g
)
f \in \Omicron(g)
f∈O(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)
当N→R+,∃n0,∀n≥n0,∃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
n→∞limg(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):存在正常量c和n0,使得对所有n≥n0,有0≤cg(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)
当N→R+,∃n0,∀n≥n0,∃c使cg(n)≤f(n)
定义2(求极限形式):
lim
n
→
∞
f
(
n
)
g
(
n
)
=
c
/
∞
\lim\limits_{n \to \infty} \frac {f(n)} {g(n)}=c / \infty
n→∞limg(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)即(f∈O(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)
当N→R+,∃n0,∀n≥n0,∃c1,c2使0≤c1g(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)
n→∞limg(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,使得对所有n≥n0,有0≤f(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)
当N→R+,∃n0,∀n≥n0,∀c使f(n)<cg(n)
定义2(求极限形式):
lim
n
→
∞
f
(
n
)
g
(
n
)
=
0
\lim\limits_{n \to \infty} \frac {f(n)} {g(n)}=0
n→∞limg(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,使得对所有n≥n0,有0≤cg(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 n→∞limg(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)
当N→R+,∃n0,∀n≥n0,∀c使cg(n)<f(n)
定义2(求极限形式):
lim
n
→
∞
f
(
n
)
g
(
n
)
=
∞
\lim\limits_{n \to \infty} \frac {f(n)} {g(n)}=\infty
n→∞limg(n)f(n)=∞