2017-01-26 8 views
-1

次の関数の時間複雑度はどのくらいですか? はO(n^3)かO(n^4)ですか?Cプログラムの時間複雑度

最初のforループではO(n^3) が得られていますが、これはn回実行されます。 2番目のforループでは、n番目の要素ごとにn^2回になるので、ここまでの複雑さはO(n^3) になります。ifステートメントは、 2個の値になり、n個の値ごとにk-forのループはn^2個の要素まで移動するため、複雑さはO(n^3)になります。 Iは、nのいくつかの値をとっている:N = 3、C = 25

ため

N = 10、C = 1705

ため 用のn = 50、C = 834275

for(i=1;i<=n;++i)        
    for(j=1;j<=(i*i);++j) 
     if((j%i)==0)        
      for(k=1;k<=j;++k)  
       c=c+1; 
+0

その順序はO(n^4)です。 'i = n'の場合、2番目のループは' n^2'回実行され、 'j = i * i'の3番目のループは' n^2'回実行されます。 – haccks

+0

私たちはあなたの代わりにあなたの優秀なことをしたいですか? – user31264

+0

@ haccksどうすればいいですか? –

答えて

0

時間そのようなプログラムの複雑さは、O(n^3)です。

+0

いくつかの説明を追加したいですか?あなたの答えはそれほど有用ではありません。あなたはあなたの答えを正当化する必要があります。 – bolov

+0

答えは です。http://math.stackexchange.com/a/2114823/410265 –