The important things to know are:
2)This means that in any analysis that ignore lower-order terms and constants.
Example: Do not say T(N) = O(2N^2) or T(N) = O(N^2 + N);
The correct form is T(N) = O(N^2).
Rule1: for loop:
The running time of a for loop is at most the running time of the statements inside the for loop(including tests) times the number of iterations.
As an example, the following program fragment is O(N):
for(i=0; i<N; i++) k++;Rule2:Nested for loop:
Analyze these inside out. The total running time of a statement inside a group of nested loops is the running time of the statement multiplied by the product of the sizes of all the for loops.
As an example, the following program fragment is O(N^2):
for(i=0; i<N; i++) for(j=0; j<N; j++) k++;Rule3:Consecutive Statements:
These just add(which means that the maximum is the one that counts).
As an example, the following program fragment, which has O(N) work followed by O(N^2) work, is also O(N^2):
for(i=0; i<N; i++) A[i] = 0; for(i=0; i<N; i++) for(j=0; j<N; j++) A[i] += A[j]+i+j;
For the fragment
The running time of an if/else statement is never more than the running time of the test plus the larger of the running times of S1 and S2.
A basic strategy of analyzing from the inside(or deepest part) our works.
If there are function calls, these must be analyzed first.
Data Structures and Algorithm Analysis in C .Second Edtion
Than you for reading!
--By lzq at NanYang May.26.2014