次の関数の時間複雑度はどのくらいですか? は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;
その順序はO(n^4)です。 'i = n'の場合、2番目のループは' n^2'回実行され、 'j = i * i'の3番目のループは' n^2'回実行されます。 – haccks
私たちはあなたの代わりにあなたの優秀なことをしたいですか? – user31264
@ haccksどうすればいいですか? –