1、 O(g(n)):时间复杂度f(n)上界
f(n)=O(g(n))表示存在适当的常数c>0, n 0 n_0 n0>0,使得0<f(n)<=cg(n)对充分大的n成立,换言之,n>= n 0 n_0 n0;
EX1:
2
n
2
2n^2
2n2=O(
n
3
n^3
n3)
这里的“=”理解为属于,
2
n
2
2n^2
2n2属于O(
n
3
n^3
n3)。
定义: O(g(n))为一个函数集,集合内的函数记为f(n)。O(g(n))={f(n):存在常数c>0,n>=
n
0
n_0
n0,对任意n>=
n
0
n_0
n0,都有0<f(n)<=cg(n)}
EX2:f(n)=
n
3
n^3
n3+O(
n
2
n^2
n2).即存在某函数h(n)在函数集O(
n
2
n^2
n2)中使得f(n)=O(
n
2
n^2
n2)+h(n)
EX3:
n
2
n^2
n2+O(n)=O(
n
2
n^2
n2).即对任意f(n)∈O(n),存在h(n)∈O(
n
2
n^2
n2)使得
n
2
n^2
n2+f(n)=h(n)
大O符号很好地表示了上界,但还需要下界Ω
2、Ω(g(n)):时间复杂度f(n)下界
定义: Ω(g(n))={f(n):存在常数c>0, n 0 n_0 n0>0,对任意的n>= n 0 n_0 n0使得0<=cg(n)<=f(n)}
3、Θ(g(n))
Θ(g(n))=O(g(n))∩ Ω(g(n)),Θ(g(n))介于O(g(n))和Ω(g(n))之间,O(g(n))和Ω(g(n))分别代表时间复杂度的上界和下界。f(n)=Θ(g(n)):代表f(n)与Θ(g(n))同阶。