复杂度的渐进表示
1. O(n)(常用)
T
(
n
)
=
O
(
f
(
n
)
)
T(n)=O(f(n))
T(n)=O(f(n))
这个式子表示存在常数
C
>
0
C>0
C>0
n
0
>
0
n_0 >0
n0>0使得当
n
>
=
n
0
n>=n_0
n>=n0 时,
T
(
n
)
<
=
C
∗
O
(
f
(
n
)
)
T(n)<=C*O(f(n))
T(n)<=C∗O(f(n))
简单来说,
O
(
f
(
n
)
)
O(f(n))
O(f(n)) 表示的就是
f
(
n
)
f(n)
f(n)的复杂度中的某个上界
例如,
f
(
n
)
=
(
n
∗
(
n
+
1
)
)
/
2
f(n)=(n*(n+1))/2
f(n)=(n∗(n+1))/2 则
O
(
f
(
n
)
)
=
n
2
O(f(n))=n^2
O(f(n))=n2(不唯一)
2. T(n)
T
(
n
)
=
Ω
(
f
(
n
)
)
T(n)=Ω(f(n))
T(n)=Ω(f(n))
这个式子表示存在常数
C
>
0
C>0
C>0
n
0
>
0
n_0 >0
n0>0使得当
n
>
=
n
0
n>=n_0
n>=n0 时,
T
(
n
)
>
=
C
∗
Ω
(
f
(
n
)
)
T(n)>=C*Ω(f(n))
T(n)>=C∗Ω(f(n))
简单来说,
Ω
(
f
(
n
)
)
Ω(f(n))
Ω(f(n)) 表示的就是
f
(
n
)
f(n)
f(n)的复杂度的某个下界
例如,
f
(
n
)
=
(
n
∗
(
n
+
1
)
)
/
2
f(n)=(n*(n+1))/2
f(n)=(n∗(n+1))/2 则
Ω
(
f
(
n
)
)
=
n
2
/
2
Ω(f(n))=n^2/2
Ω(f(n))=n2/2(不唯一)
3. Θ(n)
T
(
n
)
=
Θ
(
f
(
n
)
)
T(n)=Θ(f(n))
T(n)=Θ(f(n))
这个式子表示同时有以下两个式子成立
T
(
n
)
=
O
(
f
(
n
)
)
T(n)=O(f(n))
T(n)=O(f(n))
T
(
n
)
=
Ω
(
f
(
n
)
)
T(n)=Ω(f(n))
T(n)=Ω(f(n))