時間複雜度的計算問題

2021-08-11 20:41:35 字數 1222 閱讀 5910

時間複雜度

注意的兩點:1、只保留高階項

2、係數直接捨棄

如果是常數,直接為1。

例子:1、(具體認真的算)

for (i=1;i<=n;++i)     // (1+n+n)

for(j=1;j<=n;++j)      //(i=1時,j可以為1,2….到n.) (1+n+n)

c[i][j];      // n*n

最終計算結果為f(n)=3n^2+3n+1             o(f(n))=o(n^2) 2、

for(i=2;i<=n;++i)

for(j=2;j=i-1;++j)

++x;  

a[i,j]=x;  

}只需要算出最重要的部分,最多的部分,也就是執行的總次數

當i=2時,j執行0次;當i=3時,j 執行1次;當i=4時,j執行//2次;當i執行第n 次時,j執行n-2次:

總的次數      2*(0+1+2+(n-2)),2係數可以不要,利用求和公式,

把總次數可以求出來為n^2.整體執行兩次,係數可以不算

o(f(n))=o(n^2)

3、

(1)int  fun(int n)

if(n<=1)

return 0;

return fun(n-2)+1;

遞迴:算出需要計算的次數:

n n-2 n-4 n-6…..n-n=0

為方便計算共有多少次,可以寫成 0 2 4 6 8……n,這樣可計算出宮經過了1/2n;

o(n)

(2)return fun(n-1)+1

需要算出總次數

n n-1 n-2 n-3….n-n

0 1 2 3 4 …..n

總次數為n 次  o(n)

(3)return fun(n/2)+1

n n/2 n/4 n/8  n/16 n/32 ……n/n=1

1 2 4 8 16 32…..n

可以寫為2的0、1、2、3、4…….n次方

最後只需算出2的x次方等於n 就好

x = log2n

o(log2x)

時間複雜度的計算問題

一般情況下,演算法中基本語句重複執行的次數是問題規模n nn的某個函式f n f n f n 演算法的時間量度記做 t n o f n t n o f n t n o f n 它表示問題規模n nn的增大,演算法執行時間的增長率和f n f n f n 的增長率相同,稱作演算法的漸近時間複雜度,簡稱...

時間複雜度計算

定義 如果乙個問題的規模是n,解這一問題的某一演算法所需要的時間為t n 它是n的某一函式 t n 稱為這一演算法的 時間複雜性 當輸入量n逐漸加大時,時間複雜性的極限情形稱為演算法的 漸近時間複雜性 我們常用大o表示法表示時間複雜性,注意它是某乙個演算法的時間複雜性。大o表示只是說有上界,由定義如...

時間複雜度計算

1,演算法複雜度是在 資料結構 這門課程的第一章裡出現的,因為它稍微涉及到一些數學問題,所以很多同學感覺很難,加上這個概念也不是那麼具體,更讓許多同學複習起來無從下手,下面我們就這個問題給各位考生進行分析。首先了解一下幾個概念。乙個是時間複雜度,乙個是漸近時間複雜度。前者是某個演算法的時間耗費,它是...