渐进记号
渐进记号分为:Θ()、Ω()、ω()、O()、o()
1. Θ记号
f(n)=Θ(g(n))f(n) = \Theta(g(n))f(n)=Θ(g(n))
存在正常数C1,C2和n0,使得对所有的n≥n0,存在正常数C_1,C_2和n_0,使得对所有的n \ge n_0,存在正常数C1,C2和n0,使得对所有的n≥n0,
都有0≤C1∗g(n)≤f(n)≤C2∗g(n),f(n)与g(n)在数量级上相等都有0 \le C_1*g(n) \le f(n)\le C_2*g(n),f(n)与g(n)在数量级上相等都有0≤C1∗g(n)≤f(n)≤C2∗g(n),f(n)与g(n)在数量级上相等
我们试着证明:我们试着证明:我们试着证明:
12n2−3n=θ(n2)\frac12n^2 - 3n = \theta(n^2)21n2−3n=θ(n2)
第一步,我们必须确定有第一步,我们必须确定有第一步,我们必须确定有
C1n2≤12n2−3n≤C2n2C_1n^2\le\frac12n^2-3n\le C_2n^2C1n2≤21n2−3n≤C2n2
第二步,我们将两边除以n2第二步,我们将两边除以n^2第二步,我们将两边除以n2
C1≤12−3n≤C2C_1\le \frac12 - \frac3n\le C_2C1≤21−n3≤C2
C2≥1/2可以使任意n≥1,不等式右边成立C_2\ge1/2可以使任意n\ge1,不等式右边成立C2≥1/2可以使任意n≥1,不等式右边成立
C1≤1/14可以使任意n≥7,不等式左边成立C_1\le1/14可以使任意n\ge7,不等式左边成立C1≤1/14可以使任意n≥7,不等式左边成立
2. O记号
f(n)=O(g(n))f(n) = O(g(n))f(n)=O(g(n))
存在正常数C,n0,使得对所有的n≥n0,都有0≤f(n)≤C∗g(n)存在正常数C,n_0, 使得对所有的n\ge n_0, 都有0\le f(n) \le C * g(n)存在正常数C,n0,使得对所有的n≥n0,都有0≤f(n)≤C∗g(n)
f(n)在数量级小于等于g(n)f(n)在数量级小于等于g(n)f(n)在数量级小于等于g(n)
3. o记号
f(n)=o(g(n))f(n) = o(g(n))f(n)=o(g(n))
存在正常数C,n0,使得对所有的n≥n0,都有0≤f(n)<c∗g(n);f(n)在数量级小于g(n)存在正常数C,n_0, 使得对所有的n\ge n_0, 都有0\le f(n) \lt c * g(n);f(n)在数量级小于g(n)存在正常数C,n0,使得对所有的n≥n0,都有0≤f(n)<c∗g(n);f(n)在数量级小于g(n)
e.g.:2n=ο(n2);2n2≠o(n2)2n = \omicron(n^2);2n ^2 \neq o(n ^2)2n=ο(n2);2n2=o(n2)
4. Ω记号
f(n)=Ω(g(n))f(n) = Ω(g(n))f(n)=Ω(g(n))
存在正常数C,n0,使得对所有的n≥n0,都有0≤C∗g(n)≤f(n);f(n)在数量级大于等于g(n)存在正常数C,n_0, 使得对所有的n\ge n_0, 都有 0 \le C * g(n) \le f(n); f(n)在数量级大于等于g(n)存在正常数C,n0,使得对所有的n≥n0,都有0≤C∗g(n)≤f(n);f(n)在数量级大于等于g(n)
5. ω记号
f(n)=ω(g(n))f(n) = ω(g(n))f(n)=ω(g(n))
存在正常数C,n0,使得对所有的n≥n0,都有0≤c∗g(n)<f(n);f(n)在数量级大于g(n)存在正常数C,n_0, 使得对所有的n\ge n0, 都有 0 \le c * g(n) \lt f(n); f(n)在数量级大于g(n)存在正常数C,n0,使得对所有的n≥n0,都有0≤c∗g(n)<f(n);f(n)在数量级大于g(n)
性质
- 传递性
- 自反性
- 对称性
- 转置对称性