时间复杂度的表示
##时间复杂度表示方法
- 如果存在正常数c和n,使得当N ≥n时 T(N) ≤cf(N),则记为T(N) = O(f(N));
- 如果存在正常数c和n,使得当N ≥n时 T(N) ≥cf(N),则记为T(N) = Ω(f(N));
- 如果存在正常数c和n,使得当N ≥n时 T(N) =cf(N),则记为T(N) = Θ(f(N));
- 如果存在正常数c和n,使得当N ≥n时 T(N) <cf(N),则记为T(N) = o(f(N));
实际情况中主要是使用大O表示法
##有以下几个法则
- 如果T1(N) = O(f(N))且T2(N)=O(g(N)),那么:
- T1(N) +T2(N) = max(O(f(N)) , O(g(N)))
- T1(N) T2(N) = O(f(N) g(N))
- 如果T(N)是一个k次多项式,则T(N) = Θ(N^k)
- 对于任意常数k,log^kN = O(N)
##常见的时间复杂度模型
- c 常数
- logN 对数级
- log^2N 对数平方根
- NlogN
- N^2 平方级
- N^3 立方级
- 2^N 指数级