update other notations

This commit is contained in:
Shine wOng
2019-05-07 16:30:39 +08:00
parent 46704e8864
commit 10c392df83

View File

@@ -109,9 +109,7 @@ $$T(n) = number\ of\ basic\ operations\ to\ solve\ a\ problem\ of\ scale\ n$$
存在不同的渐进分析方法。回忆我们之间提到我们往往是评价一个算法在最坏情况下的效率这里引入大O记号(big O notation),其定义如下:
```
若存在函数f(n)和正的常数c使得在渐进的条件(n >> 2)下T(n) <= c·f(n)则可以认为f(n)给出了T(n)增长速度的一个上界(最坏情况)记T(n) = O(f(n))
```
_若存在函数f(n)和正的常数c使得在渐进的条件(n >> 2)下T(n) <= c·f(n)则可以认为f(n)给出了T(n)增长速度的一个上界(最坏情况)记T(n) = O(f(n))_
同时根据定义可以给出大O记号的几个性质:
+ 对于任意常数 c > 0, O(f(n)) = O(c·f(n))
@@ -123,3 +121,18 @@ $$n^a + n^b <= n^a + n^a = 2 * n^a = O(n^a)$$
在计算大O记号时可以直接忽略低次项的原因也在于此。
### Other notations
上面也说了大O记号表示的是最坏情况下算法在时间复杂度上的增长趋势。除此以外还存在在最好情况下以及平均情况下的时间估计。
#### big $\Omega$ notation
big $\Omega$ notation是标志了算法运行时间的下届即最好情况其定义如下:
_若存在函数f(n)和正的常数c使得在渐进的条件(n >> 2)下T(n) >= c·f(n)则可以认为f(n)给出了T(n)增长速度的一个下届(最好情况)记T(n) = $\Omega$(f(n))_
#### big $\Theta$ notation
big $\Theta$ notation 是标志算法运行时间的平均情况,它也具有相似的定义:
_若存在函数f(n)和正的常数c1和c2使得在渐进的条件(n >> 2)下c1·f(n) < =T(n) <= c2·f(n)则可以认为f(n)给出了T(n)增长速度的平均情况记T(n) = $\Theta$(f(n))_