刷算法题的准备工作——算法时间复杂度的计算(粗略)

快要找工作了,题库得赶紧刷起来了。先刷一些算法题。

那么如何评价算法的好坏呢?

算法嘛,当然是要算法效率越高越好,一般情况下,我们只考虑让算法的时间复杂度尽量小

时间复杂度,一般也不需要精确计算其表达式,我们只需要让其尽量小即可。一般用大写的O来表示。比如O(n),O(n2)等。

决定一个算法时间复杂度的主要因素是算法中执行次数最多的语句。所以判断算法时间复杂度可以简化为以下三步:

1.找到算法中执行次数最多的语句;

2.计算语句执行次数的数量级;

3.去掉计算结果中的常数项系数,然后用大写O来表示结果。

例如:

public static void main (String[] args){
    int num=1;
     for(int i=0; i<n; i++){
         for(int j=0; j<=i; j++){
             num+=num;
         }
    }      
}

随便写了一个双层循环来举例,

1.首先找到执行次数最多的语句num+=num;

2.然后计算该语句的执行次数;1+2+3+...+n=n*(n-1)/2

3.得出该算法的时间复杂度为O(n2)

先就这样,接下来开始刷题。

原文地址:https://www.cnblogs.com/shengguilv/p/12769204.html