このコードを実行すると、合計30回実行されます。私は外側ループがNを実行することを知っていますが、内部ループはとBig(O)を見つけようとする前にではなく、i*i
のようなものを見たことがありません。Big(o)の図解
0
A
答えて
0
このアルゴリズムはO(n^3)
です:私たちが実行される頻度を内部コード
cout << j << endl;
result++;
把握する必要があり、これを実現するために。このためには、よく知られた結果である1*1+2*2+...+n*n = n^3/3+n^2/2+n/6
を要約する必要があります(例えば、Sum of the Squares of the First n Natural Numbersを参照)。従って、O(T(n)) = O(1*1+2*2+...+n*n) = O(n^3)
であり、アルゴリズムの(時間)複雑さはO(n^3)
である。
編集:これで十分であるなぜあなたは(Time complexity with examplesでも、実施例4を参照)迷っているならば、我々はループが命令の一定量を(追加することを見ることができるように、単一のループとして、あなたのコードを書き換えることは有用です
int i = 0;
int j = 0;
while(i < n) {
cout << j << endl;
result++;
if(j < i * i) j++; //were still in the inner loop
else {//start the next iteration of the outer loop
j = 0;
i++;
}
}
したがって、2つのループ「追加」の2つの比較に加えて、単純に条件ジャンプとその効果がより明確になりますif文:内部コードの各実行)について。
関連する問題
- 1. アルゴリズムのBig O解析 - ジョブインタビュー
- 2. 2つのアルゴリズムのBig-O解析
- 3. Big Oループと配列の解釈
- 4. アルゴリズムのbig O
- 5. スタッキングコンテナのBig O
- 6. Java Big O Notationアルゴリズム
- 7. Big-O for Whileループ
- 8. Big O分析のアルゴリズム
- 9. Java - addDigitsメソッドのBig O?
- 10. (1/2)^ nのBig Oクラス
- 11. ループのBIG O分析
- 12. Big Oの例2^n
- 13. Big-O表記の定義
- 14. 関数のBig O計算
- 15. Big O表記の証明
- 16. Pythonデータ構造のbig-O解析のリスト
- 17. Big O - ネストされたループ
- 18. BIg O表記:n * logn
- 19. C++ステートメントのBig-O 'delete [] Q;' O(1)またはO(n)?
- 20. 関数内の関数を使ったBig-O解析
- 21. big-oを使用した時間複雑度解析
- 22. Big-O Proofを正しく解決する
- 23. Big O解析のための擬似コードを解析するコード
- 24. 特定のdouble forループのBig O
- 25. 2つのコードフラグメントのBig O表記
- 26. 特定のBig Oの質問
- 27. Neo4jのREDUCE FuctionのBig Oとは
- 28. このプログラムのBig-OはO(N^2)ですか?
- 29. 再帰的Big-Oの複雑さ
- 30. ネストループ内の乗算数:Big O
O(n^3)のようです。 – Shiping