1.2复杂度分析

146 阅读1分钟

复杂度的渐进表示法

  1. O(f(n))表示f(n)是T(n)的上界——一般取得是能找到的最小的上界
  2. **表示g(n)是T(n)的下界——**一般取得是能找到的最大的下界
  3. 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的条件判断复杂度和两个分枝部分的复杂度,总体复杂度取三者中最大