このコードを実行すると、合計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. Java Big O Notationアルゴリズム
- 6. ループのBIG O分析
- 7. Big-O表記の定義
- 8. Big Oの例2^n
- 9. (1/2)^ nのBig Oクラス
- 10. Big O表記の証明
- 11. Big O分析のアルゴリズム
- 12. 関数のBig O計算
- 13. Pythonデータ構造のbig-O解析のリスト
- 14. BIg O表記:n * logn
- 15. Big O - ネストされたループ
- 16. C++ステートメントのBig-O 'delete [] Q;' O(1)またはO(n)?
- 17. 関数内の関数を使ったBig-O解析
- 18. Big-O Proofを正しく解決する
- 19. big-oを使用した時間複雑度解析
- 20. Neo4jのREDUCE FuctionのBig Oとは
- 21. 特定のdouble forループのBig O
- 22. 特定のBig Oの質問
- 23. このプログラムのBig-OはO(N^2)ですか?
- 24. JavaコードのBig-Oを決定する
- 25. ネストループ内の乗算数:Big O
- 26. 単純なBig-Oの計算
- 27. 実行時間の分析、Big O
- 28. 指数関数Big-O相当値
- 29. Big-O表記:暗号化アルゴリズム
- 30. Count(A、B、n)アルゴリズムのBig-O(O(n))およびBig-Omega(Ω(n))時間の複雑度
O(n^3)のようです。 – Shiping