時間複雜度的計算。時間複雜度怎麼計算?

時間 2023-01-16 21:00:09

1樓:網友

1.時間複雜度o(n^2)

2.時間複雜度o(n^2)

3.時間複雜度o(n^2)

4.時間複雜度o(n)

5.時間複雜度o(n^3)

一般來說,時間複雜度是總運算次數表示式中受n的變化影響最大的那一項(不含係數)

比如:一般總運算次數表示式類似於這樣:

a*2^n+b*n^3+c*n^2+d*n*lg(n)+e*n+f

a<>0時,時間複雜度就是o(2^n);

a=0,b<>0 =>o(n^3);

a,b=0,c<>0 =>o(n^2)依此類推。

那麼,總運算次數又是如何計算出的呢?

一般來說,我們經常使用for迴圈,就像剛才五個題,我們就以它們為例。

1.迴圈了n*n次,當然是o(n^2)

2.迴圈了(n+n-1+n-2+..1)≈(n^2)/2,因為時間複雜度是不考慮係數的,所以也是o(n^2)

3.迴圈了(1+2+3+..n)≈(n^2)/2,當然也是o(n^2)

4.迴圈了n-1≈n次,所以是o(n)

5.迴圈了(1^2+2^2+3^2+..n^2)=n(n+1)(2n+1)/6(這個公式要記住哦)≈(n^3)/3,不考慮係數,自然是o(n^3)

另外,在時間複雜度中,log(2,n)(以2為底)與lg(n)(以10為底)是等價的,因為對數換底公式:

log(a,b)=log(c,b)/log(c,a)

所以,log(2,n)=log(2,10)*lg(n),忽略掉係數,二者當然是等價的。

如果還不明白就在qq上說吧,786453572

時間複雜度怎麼計算?

2樓:匿名使用者

1. 一般情況下,演算法的基本操作重複執行的次數是模組n的某乙個函式f(n),因此,演算法的時間複雜度記做:t(n)=o(f(n))

分析:隨著模組n的增大,演算法執行的時間的增長率和f(n)的增長率成正比,所以f(n)越小,演算法的時間複雜度越低,演算法的效率越高。

2. 在計算時間複雜度的時候,先找出演算法的基本操作,然後根據相應的各語句確定它的執行次數,再找出t(n)的同數量級(它的同數量級有以下:1,log2n ,n ,nlog2n ,n的平方,n的三次方,2的n次方,n!

),找出後,f(n)=該數量級,若t(n)/f(n)求極限可得到一常數c,則時間複雜度t(n)=o(f(n))

例:演算法:for(i=1;i<=n;++i)

}則有 t(n)= n的平方+n的三次方,根據上面括號裡的同數量級,我們可以確定 n的三次方 為t(n)的同數量級。

則有f(n)= n的三次方,然後根據t(n)/f(n)求極限可得到常數c

則該演算法的 時間複雜度:t(n)=o(n的三次方)

3樓:簡爾清尋桃

"對i的一次迴圈,@語句會執行1+2+..i=i(i+1)/2次,因此@語句總共會執行1*(1+1)/2+2*(2+1)/2+..n(n+1)/2次,把這個數列看成2個數列i^2/2,和i/2,分別求和即可"

時間複雜度的計算 50

4樓:樂正桂環蘭

關於時間。

複雜度bai

的計算是du按照運算次數來進行zhi的,比如dao1題:

sum1(intn)

//n次。return(sum);/1次。

}最後總的版。

次數為1+(n+1)+n+n+1+1=3n+3所以時間權複雜度f(o)=n;(時間複雜度只管n的最高次方,不管他的係數和表示式中的常量)

其餘的一樣,不明白的可以來問我。

時間複雜度計算

5樓:海超

簡單理解,時間複雜度就是執行語句被呼叫了多少次。 (1)如果只呼叫了一次,如: x=5; if(x<-4) else 在大括號中的內容,只會呼叫乙個語句,那麼o(n)=1; (2)如果呼叫了兩次,如:

x=5; if(x<-4) else x=x+56; 在大括號中的內容,只會呼叫乙個語句,但是在最後,還有乙個計算公式要呼叫語句;總共加起來就是呼叫2次。那麼o(n)=2; (3)用1個for迴圈呼叫 for(x=0;x

演算法的時間複雜度如何計算?

6樓:

關於時間複雜度的計算是按照運算次數來進行的,比如1題:

sum1( int n )

//n次。return (sum) ;1次。

} 最後總的次數為。

1+(n+1)+n+n+1+1=3n+3

所以時間複雜度f(o)=n;(時間複雜度只管n的最高次方,不管他的係數和表示式中的常量)

其餘的一樣,不明白的可以來問我。

7樓:匿名使用者

求解演算法的時間複雜度的具體步驟是:

⑴ 找出演算法中的基本語句;

8樓:愛上鳥兒

乙個演算法花費的時間與演算法中語句的執行次數成正比例,時間複雜度一般用o(f(x))表示。

f(x)在簡單程式中就是看有幾個for迴圈,然後看看再它的判斷語句,就是看看它執行了幾次,f(x)=「執行的次數」。

像題中的(1)有乙個for迴圈執行次數為n次,所以f(x)=n,時間複雜度就為o(n)

(2)有兩個for迴圈執行次數為n*n,即n的平方,所以f(x)=n的平方,時間複雜度就是o(n的平方)。

(3)是遞迴,它也執行了n次所以它的時間複雜度就是o(n).

不過要注意時間複雜度的f(x)在有限次時就用具體數值表示,無限次時就用n,n的平方,log以2為底n的對數,其實很簡單就是看n的最高次方,看n的最高次方等於幾,f(x)就等於幾。

9樓:匿名使用者

就是程式執行次數和輸入n的函式關係。

平方)

如何計算時間複雜度

10樓:

一般情況下,演算法的基本操作重複執行的次數是模組n的某乙個函式f(n)。

因此,演算法的時間複雜度記做:t(n)=o(f(n))。

隨著模組n的增大,演算法執行的時間的增長率和f(n)的增長率成正比,所以f(n)越小,演算法的時間複雜度越低,演算法的效率越高。

在計算時間複雜度的時候,先找出演算法的基本操作,然後根據相應的各語句確定它的執行次數,再找出t(n)的同數量級(它的同數量級有以下:1,log2n ,n ,nlog2n ,n的平方,n的三次方,2的n次方,n!),找出後,f(n)=該數量級,若t(n)/f(n)求極限可得到一常數c,則時間複雜度t(n)=o(f(n))。

時間複雜度的概念:

時間複雜度是總運算次數表示式中受n的變化影響最大的那一項(不含係數)比如:一般總運算次數表示式類似於這樣:

a*2^n+b*n^3+c*n^2+d*n*lg(n)+e*n+fa ! 0時,時間複雜度就是o(2^n);

a=0,b<>0 =>o(n^3);

a,b=0,c<>0 =>o(n^2)依此類推。

11樓:安徽新華電腦專修學院

乙個演算法是解決某個問題。

的,比如n條資料排序問題,那麼對於這個問題「n」就是它的問題規模那麼解決這個問題的演算法的代價一定是n的函式,記為t(n)為了比較不同演算法之間的優劣,必須有一種方法將計算代價的函式進行變換,所以提出一種。

概念叫做「複雜度」(好像是這麼個意思,教材上的那個陰文單詞背不出了)

時間複雜度計算

12樓:世界文明導師

t 在這裡來指斐波那契函式,不自是時間複雜度。

其中bai,t(n) =t(n - 1) +t(n - 2)遞推公式,說du

明任意n (n >=2) 都滿足數列中前zhi兩個數之和。所dao以,如果n ==0n ==1,我們無法通過遞推公式求出函式值,所以要賦初值,即t(1) =1, t(0) =0

函式中if(n ==1)邊界條件,指當遞迴到 n ==1時便停止遞迴。

13樓:聽不清啊

t(0)t(1)是根據這個數列的已知條件得出的。

如何計算時間複雜度

14樓:最愛彩虹糖

1、先找出演算法的基本操作,然後根據相應的各語句確定它的執行次數,再找出t(n)的同數量級(它的同數量級有以下:1,log2n ,n ,nlog2n ,n的平方,n的三次方,2的n次方,n!),找出後,f(n)=該數量級,若t(n)/f(n)求極限可得到一常數c,則時間複雜度t(n)=o(f(n))。

2、舉例。for(i=1;i<=n;++i)

}則有 t(n)= n的平方+n的三次方,根據上面括號裡的同數量級,我們可以確定 n的三次方為t(n)的同數量級。

則有f(n)= n的三次方,然後根據t(n)/f(n)求極限可得到常數c

則該演算法的 時間複雜度:t(n)=o(n的三次方)

15樓:匿名使用者

計算方法。

1. 一般情況下,演算法的基本操作重複執行的次數是模組n的某乙個函式f(n),因此,演算法的時間複雜度記做:t(n)=o(f(n))

分析:隨著模組n的增大,演算法執行的時間的增長率和 f(n) 的增長率成正比,所以 f(n) 越小,演算法的時間複雜度越低,演算法的效率越高。

2. 在計算時間複雜度的時候,先找出演算法的基本操作,然後根據相應的各語句確定它的執行次數,再找出 t(n) 的同數量級(它的同數量級有以下:1,log(2)n,n,n log(2)n ,n的平方,n的三次方,2的n次方,n!

),找出後,f(n) =該數量級,若 t(n)/f(n) 求極限可得到一常數c,則時間複雜度t(n) =o(f(n))

例:演算法:12

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

}則有 t(n) =n 的平方+n的三次方,根據上面括號裡的同數量級,我們可以確定 n的三次方 為t(n)的同數量級。

則有 f(n) =n的三次方,然後根據 t(n)/f(n) 求極限可得到常數c

則該演算法的時間複雜度:t(n) =o(n^3) 注:n^3即是n的3次方。

3.在pascal中比較容易理解,容易計算的方法是:看看有幾重for迴圈,只有一重則時間複雜度為o(n),二重則為o(n^2),依此類推,如果有二分則為o(logn),二分例如快速冪、二分查詢,如果乙個for迴圈套乙個二分,那麼時間複雜度則為o(nlogn)。

如何計算乙個演算法的時間複雜度?

時間複雜度計算技巧,時間複雜度計算公式

乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。乙個演算法...

問演算法的時間複雜度為,問 乙個演算法的時間複雜度為 n3 n2log2n 14n n2,其數量級表示為

這個表示式的分母是n的平方吧,這樣的話,結果是o n 因為時間複雜度是計算n趨於無窮大時候的無窮大量的最大階次,這樣除完了的結果第一項是n,第2項是log2n,第3項是1 n,當n趨於無窮大時,第二項比第一項小,第3項為0 乙個演算法的時間複雜度為 n3 n2log2n 14n n2,其數量級表示為...

資料結構“時間複雜度”的題目,資料結構 有關時間複雜度題目 求高手!求詳細解釋

麗江旅遊指南網 o表示法首先要弄清楚什麼用它來代表的上限的漸近執行時間的演算法函式g n o g n 代表了一組函式。介紹到演算法書定義 o g n 看到上面也可以忽略不明白,你只需要知道在低階項的漸近積極的作用,在確定上限和下限,可以忽略不計,因為當n大,他們相對來說並不重要,指數最高的專案上腳的...