求時間複雜度for i 2 in ifor j 2 ji 1jx a x為什麼是 n 1 n

2021-03-31 22:38:20 字數 2130 閱讀 4610

1樓:匿名使用者

i從2到n變化,共 n-1詞迭代,j從2到i-1變化,共i-2次迭代

所以共有0 + 1 + 2 ... + (n - 2) = (n - 1)(n - 2) / 2

、下面程式段的時間複雜度是 。 for(i=1;i<=n;i++) for(j=1;j<=

2樓:匿名使用者

雙重for迴圈,當然就是n的平方了,故選擇d

x=0;for(i=1;i

3樓:sunny鞦韆墜

i=1時 迴圈n-1

i=2。。。n-2

i=n-1 .... 1

所以1+2+3+。。。n-1=(1+n-1)*(n-1)/2=n^2/2-n/2

所以時間複雜度是0(n^2)

4樓:易燃又好吃

應該是o(n2),(n2表示n的平方……)

5樓:匿名使用者

從兩個方面對你的問題進行解答:

1.實驗。令x=0,y=1,每執行一次x=x+y,x都會加1,所以最後x的值就是其執行值。測試程式如下:

執行結果:

2、從理論說明。外層給定一個n,內部兩層就會迴圈1+2+3+....+n次,所以總的迴圈次數為:

1+(1+2)+(1+2+3)+(1+2+3+4)+.....(1+2+3+4+.....+n).

這個結果等於多少呢?請看下面數學證明。

證明過程:

數列各項是:

11+2

1+2+3

……1+2+3+……+n

由於:1+2+3+……+n=n(n+1)/2=(n²+n)/21²+2²+……n²=n(n+1)(2n+1)/6所以數列各項加起來就是:

s(n)=(1²+1)/2+(2²+2)/2+(3²+3)/2+……+(n²+n)/2

=[(1²+2²+3²+……+n²)+(1+2+3+……+n)]/2=[n(n+1)(2n+1)/6+n(n+1)/2]/2=n(n+1)[(2n+1)/6+1/2]/2=n(n+1)(n+2)/6

綜上,結果為n(n+1)(n+2)/6,時間複雜度為o(n的立方)

for(i=1;i<=n;i++) for(j=1;j<=i;j++) s++;求時間複雜度

6樓:匿名使用者

總執行次數為1 + 2 + ... + n = n(n+1)/2 ,所以時間複雜度為o(n^2)

7樓:匿名使用者

時間複雜度應該是o(n^3)

時間複雜度?for(i=1;i

8樓:牜疓囝

樓主的理解錯了,第一個for是執行n次(其實是n-1次,不進入迴圈體本體是不計算次數的,不過沒影

響),第二個也是1+2+3+4+...+n-2次(其實是0+1+2+...+n-2,不過也沒有影響),可n*((n-2)*(n-

1)/2)的意思是什麼呢?意思是(n-2)*(n-1)/2這個運算,做了n次?事實是這樣的嗎?不是的。(n-1)*

(n-2)/2這個是最內層迴圈體的本體執行的次數,而n-1次是外層迴圈體執行的次數,總複雜度是(n-1)*(n-2)/2+n-1這兩部分組成的,由於前者大於後者,因此複雜度是(n-1)*(n-2)/2,最終是n^2。算複雜度其實主要看最裡面那層執行多少次(其實可在i迴圈里加個"k++",j迴圈裡面加個p++,k和p初始為0,運算輸出可得k=n-1,p=(n-1)*(n-2)/2),還不明白可以再交流,444231011@**.***

9樓:匿名使用者

0 + 1 + 2 + 3 + 4 + 5 。。。。 + (n - 1)

= n * n / 2

= n^2 / 2

一般近似為n^2

10樓:匿名使用者

(n-1)*(n-2) / 2

11樓:匿名使用者

你要問什麼?這就是一個延時程式,還是個無規律的

求時間複雜度

1 如何計算演算法的時間複雜度 在計算演算法時間複雜度時有以下幾個簡單的程式分析法則 1.對於一些簡單的輸入輸出語句或賦值語句,近似認為需要o 1 時間 2.對於順序結構,需要依次執行一系列語句所用的時間可採用大o下 求和法則 求和法則 是指若演算法的2個部分時間複雜度分別為 t1 n o f n ...

什麼是時間複雜度空間複雜度

1 時間複雜度是指執行演算法所需要的計算工作量。時間複雜度是一個函式,它定性描述了該演算法的執行時間。這是一個關於代表演算法輸入值的字串的長度的函式。時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。2 空間複雜度是指執行這個演算法所需要的記憶體空間。空間複雜度需要考慮在執行過程中為區域...

時間複雜度的定義,C 中時間複雜度是什麼意思

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