1. 程式人生 > >演算法分析時間複雜度

演算法分析時間複雜度

對一個演算法的分析,很多時候我們更關心演算法執行的時間複雜度。演算法的時間複雜度中,我們關心演算法執行的時間上界。即大O階分析方法。

時間複雜度的分類:

1、沒有迴圈遞迴的基本都是常數階。

2、有一層迴圈的就是線性階。

for(int i=0;i<n;i++){

//dosth

}

3、對數階:一般類似如下:

while(i<n){

i=i*2;

}

會迴圈log2N次。所以是對數階。

4、平方階

4.1有兩個for迴圈如下所示:

for(int i=0;i<n;i++)

for(int j=0;j<n;j++){

//執行O(1)的操作

}

4.2有兩個for迴圈如下所示:

for(int i=0;i<m;i++)

for(int j=0;j<n;j++){

//執行O(1)的操作

}


4.3有兩個for迴圈如下所示:

for(int i=0;i<m;i++)

for(int j=0;j<i;j++){

//執行O(1)的操作

}

一個演算法的時間複雜度,可以求各個關鍵步驟的累加和。主要是迴圈。