复杂度的渐进表示法
- O(f(n))表示f(n)是T(n)的上界——一般取得是能找到的最小的上界
- **表示g(n)是T(n)的下界——**一般取得是能找到的最大的下界
- h(n)既是上界又是下界
复杂度分析窍门
- 若两段算法分别有复杂度T1(n) = O(f1(n)) 和T2(n) = O(f2(n)),则
a.T1(n) + T2(n) = max( O(f1(n)), O(f2(n)) )——把两段算法拼起来
b.T1(n) x T2(n) = O( f1(n) x f2(n) )——把两段算法嵌套起来
- 若T(n)是关于n的k阶多项式,那么T(n)=Θ(n^k)
- 一个for循环的时间复杂度等于循环次数乘以循环体代码的复杂度
- if-else 结构的复杂度取决于if的条件判断复杂度和两个分枝部分的复杂度,总体复杂度取三者中最大