找到一个基本操作(最深层循环) 2. 分析该基本操作的执行次数x与问题规模n的关系 x = f ( n ) x=f(n) x=f(n) 3. x的数量级 O ( x ) O(x) O(x)就是算法时间复杂度 T ( n ) T(n) T(n): O ( x ) = T ( n ) O(x)=T(n) O(x)=T(n)
常用技巧:
加法规则: O ( f ( n ) ) + O ( g ( n ) ) = O ( m a x ( f ( n ) , g ( n ) ) ) O(f(n))+O(g(n))=O(max(f(n), g(n))) O(f(n))+O(g(n))=O(max(f(n),g(n)))
乘法规则: O ( f ( n ) ) × O ( g ( n ) ) = O ( f ( n ) × g ( n ) ) O(f(n))×O(g(n))=O(f(n)×g(n)) O(f(n))×O(g(n))=O(f(n)×g(n))
“常对幂指阶” O ( 1 ) < O ( l o g 2 n ) < O ( n ) < O ( n l o g 2 n ) < O ( n 2 ) < O ( n 3 ) < O ( 2 n ) < O ( n ! ) < O ( n n ) O(1)2)3)n)n) O(1)