關於時間複雜度的計算,如何計算時間複雜度?

2023-01-17 22:50:05 字數 2899 閱讀 1123

1樓:大一

給我十分,我告訴你答案。

2樓:瀟笙霏

請問樓主答案,我也不會。

如何計算時間複雜度?

3樓:

一般情況下,演算法的基本操作重複執行的次數是模組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)依此類推。

程式中的時間複雜度是怎麼計算的?

4樓:匿名使用者

演算法複雜度的介紹,見百科:

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

5樓:

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

sum1( int n )

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

} 最後總的次數為。

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

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

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

6樓:匿名使用者

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

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

7樓:愛上鳥兒

乙個演算法花費的時間與演算法中語句的執行次數成正比例,時間複雜度一般用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)就等於幾。

8樓:匿名使用者

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

平方)

如何計算時間複雜度

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

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

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

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

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

10樓:pluto哈嘻

c首先,觀察最內層賦值語句,發現可簡單視為時間複雜度為o(1)的函式f(i,j)

第二層迴圈次數為n-i+1

第一層迴圈次數為n

巢狀迴圈兩者次數為乘法,故上界為o(n^2)

11樓:匿名使用者

答案是c

去這裡看看,有你想要的答案:

這知識很久不用,沒有概念了。

請問演算法的時間複雜度是怎麼計算出來的?

12樓:

首先假設任意copy

乙個簡單運算的時間都是1,例如a=1;a++;a=a*b;這些運算的時間都是1.

那麼例如。for(int i=0;i注意,這裡計算一次的時間是1.

}那麼上面的這個例子的時間複雜度就是 m*n再例如氣泡排序的時間複雜度是n*n;快排的時間複雜度是log(n)。

詳細的情況,建議你看《演算法導論》,裡面有一章節,具體講這個的。

時間複雜度的幾種計算方法

13樓:我不是他舅

時間複雜度是就程式中的不定迴圈而言的。即隨著某個變數的改變,迴圈體被執行次數的函式。

如單重迴圈的複雜度為一次,二重迴圈的時間複雜度為平方。

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

14樓:線雍厙夏蓉

這裡主要是計算count++;執行的次數。

i=1的時候:

j=1k=1

執行1次;i=2的時候。

j=1k=1

j=2k=1,2

執行3次;i=3的時候。

j=1k=1

j=2k=1,2

j=3k=1,2,3

執行6次;依次類推。

i=n的時候,執行n*(n+1)/2

總共執行1+3+6+n*(n+1)/2=n(n+1)(n+2)/6次。

n(n+1)(n+2)/6的最高次項是3,所以它的時間複雜度是o(n^3).

演算法的空間複雜度,時間複雜度,有窮性分別是什麼意思

通俗來說 空間複雜度是指運算過程中佔用的記憶體和輸入的漸進關係。時間複雜度是指運算過程中使用的時間和輸入的漸進關係。有窮性是指在有限時間內可以結束運算。演算法的時間複雜度與空間複雜度各是什麼意思 是說明乙個程式根據其資料n的規模大小 所使用的大致時間和空間說白了 就是表示 如果隨著n的增長 時間或空...

幾種排序的時間複雜度,各種排序法的時間複雜度到底多少

氣泡排序是這樣實現的 首先將所有待排序的數字放入工作列表中。從列表的第乙個數字到倒數第二個數字,逐個檢查 若某一位上的數字大於他的下一位,則將它與它的下一位交換。重複2號步驟,直至再也不能交換。氣泡排序的平均時間複雜度與插入排序相同,也是平方級的,但也是非常容易實現的演算法。選擇排序 選擇排序是這樣...

下面程式段的時間複雜度為n》

o n 2 因為子層k迴圈次數為n,時間複雜度為n 父層j迴圈次數為n,故時間複雜度為n 總體時間複雜度為an n b n c o n n o n 2 o n log n 外迴圈由於j是以copy2倍為速度指數級增長的,所以在o log n 的時間結束 沒有內迴圈時 而每次外迴圈執行一次,都完整的執...