2016-12-16 3 views
-1

私は私の次のコードの実行の順序を知っておく必要があります。私は、実行の順序は、次のコードは、このコードWRTアルゴリズム何のためにあるのか知りたい:

For(j=1; j<n;j++) 
    For(k=1; k<15;k++) 
     For(l=5; l<n; l++) 
     { 
     Do_something_constant(); 
     } 
     ... 
     ... 

オプションは次のとおりです。

  1. O(N)
  2. はO(n^3)
  3. はO(n^2ログN)
  4. はO(n^2ログN)
  5. はO(n^2)

もですから、基本的にはO(1)時間での動作をプリフォームネストされた3つのループを有する正しいオプション

+2

答えはどうだと思いますか? – harold

+0

第1のオプションですが、論理的には2番目のオプションになっているので、私はここに尋ねています。 – TechnicalKeera

+0

SOは宿題終了サイトではありません。あなたが課題を完了できない場合は、インストラクターに援助を依頼してください。 –

答えて

2

...これが役に立てば幸い

あなたはこれらのループを持っている:

For(j=1; j<n;j++) { 
    For(k=1; k<15;k++) { 
     For(l=5; l<n; l++) { 
     Do_something_constant(); 
     } 
    } 
} 

はのは、その内部ループを見てみましょう。各反復はO(1)を行い、ループ全体の反復回数はΘ(n)です。私たちは、このループは、内側ループはΘ(n)はまたΘ(n)の合計作業で14回、仕事ないこと

For(j=1; j<n;j++) { 
    For(k=1; k<15;k++) { 
     Do Θ(n) work 
    } 
} 

を取得するために置き換えることができます。覚えている - 大きな - Θ表記は一定の要因を食べる!だから今、私たちは

For(j=1; j<n;j++) { 
    Do Θ(n) work 
} 

このΘ(nは)総仕事、それがないので、Θ(n)はΘ(n)の時間を動作しています。したがって、ランタイムはΘ(n )になります。

ランタイムがΘ(n )なので、元の質問に答えるには、答えがそれぞれランタイムの上限になるため、2,3,4,5の答えはすべて正しいです。 「最も良い」答えは答え5、O(n )です。なぜなら、最も厳密にはランタイムに縛られているからです。

2

の論理的な理由を記入してください。各ループのコストは、第1ループの(N-1)ステップ、第2ループの14ステップ、第3ループの(N-5)ステップである。

時間複雑度関数は、次のようになります。T(N)= O(N^2)理由は、非常に大きなN(N-1)*(N-5)* 15 => constを除外してN^2を得るために、それらが相違しないので、すべての定数を省略することができるようになります。

それは第五の答えだ「と疑問にすると内側からの作業をアウト!」

関連する問題