我正在分析一個算法,我只想知道我是否在正確的軌道上。分析算法的時間複雜性
對於這種算法,我只計算在其中有***的線上的乘法。
這裏的算法:
- 所以我從最內部行開始,我可以看到有2個操作存在(這兩個乘法)。
- 現在我正在看最內部的2個循環,所以我可以告訴
p=p*20*z
正好執行(j) + (j-1)+(j-2)+(j-3)...1
次。這恰好等於j(j+1)/2
。 - 總而言之,由於有兩個乘法,所以發生了
2 * (j(j+1)/2)
。 - 最後,「i」循環正好發生n次,所以總共是
n(2 * (n(n+1)/2))
。
這是我背後的思考過程。我對麼?謝謝。
不,你不是。最終結果應該只包含'n'。你在那裏有'j'。 –
感謝您的快速響應。它會是n(2 *(n(n + 1)/ 2))嗎? – 0xSina
其實,我認爲這只是一個錯字,因爲n代替j對於他在那裏的推導是正確的,因爲n是最大的j。 @PragmaOnce是的,雖然顯然可以簡化一下。 –