2016-12-27 132 views
0

,我發現這個網站:複雜的for循環

for (i=1; i<=n*n; i++) 
    for (j=0; j<i; j++) 
     sum++; 

的時間精確#總結++執行:報價

Sum{i=1, i=n^2}= (n^2)*((n^2)+1)/2 ∈ Θ(n^4) 

結束。

雖然我同意這個結果,但在我看來,這隻需要第一個循環,一個在我身上,而不是在j上。換句話說,在數學上,我們將具有與代碼相同的結果:

for (i=1; i<=n*n; i++) 
    sum++; 

即仍然:薩姆{I = 1,I = N^2} =(N^2)*((N^2 )+1)/ 2∈Θ(n^4) 雖然此代碼顯然是Θ(n^2)(它正好運行n^2次)

有人可以解釋我失去了什麼嗎?

回答

2

假定在遞增值的同時完成操作c的恆定數量。

enter image description here

+0

非常清楚!謝謝 – Dinaiz

1

沒有Ĵ這將是計數{I = 1,I = N^2},而不是總結{I = 1,I = N^2},因此它會推斷到N * N

+0

哦,非常感謝!我現在看到我的錯誤! – Dinaiz