码迷,mamicode.com
首页 > 其他好文 > 详细

How to estimate the time required for a program.

时间:2014-06-05 02:14:29      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:algorithm   算法   

    Once an algorithm is given for a problem and decided to be correct, an important step is to determine how much in the way of resources,such as time or space, the algorithm will require.

    

    The important things to know are:

    1)It‘s very bad style to include constants or low-order terms inside a Big-Oh

    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).


   General Rules:

   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;

   Rule4:if/else:

   For the fragment

       if(Condition)

          S1

       else

          S2

   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.

   Notices:

   A basic strategy of analyzing from the inside(or deepest part) our works.

   If there are function calls, these must be analyzed first.


Reference:

Data Structures and Algorithm Analysis in C .Second Edtion


Than you for reading!

                 --By lzq at NanYang May.26.2014

How to estimate the time required for a program.,布布扣,bubuko.com

How to estimate the time required for a program.

标签:algorithm   算法   

原文地址:http://blog.csdn.net/lizuqingblog/article/details/27100601

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!