2017-05-12 7 views
1

は、我々は、しかし、O(1)その中の文は、例えば、この第1のループの独立ループの三重あるていると仮定:このアルゴリズムの時間複雑度はどのくらいですか?それは少しトリッキーである

for (int i=1; i<=n; i++) 
{ 
    for (int j=1; j<=20; j++) 
    { 
     for (int k=1; k<=5; k++) 
       { 
        //some statements independent of n 
       } 
    } 
} 

ステートメントがでn個の独立しているため最も内側のforループは、O(n^3)とは対照的に、O(n^2)だけではありませんか?ありがとう!

答えて

4

、内側のループnに依存しないことに注意してください:

for (int j=1; j<=20; j++) 
    { 
     for (int k=1; k<=5; k++) 
       { 
        //some statements independent of n 
       } 
    } 

あなたは

for (int i=1; i<=n; i++) { 
    //some statements independent of n 
} 

に最初の問題を書き換えることができる理由だとあなたはO(n)複雑

を持っています
2

おそらくより大きな定数を持つO(n)です。 2つの内側ループは固定され、nとは独立しています。

1

それはO(n)です。 1つのループだけがnに依存します。 nを非常に高い数値に設定することを考えてください。他のループよりも面白いです。

1

基本的に、コードが実行される反復の総数は= N * 20 * 5であり、これは基本的にN回の反復と同じです。したがって、時間の複雑さはO(N)です。

関連する問題