sum(array,n)
{
tsum=0;
for(i=0;i<n;i++)
tsum=tsum+array[i];
return tsum;
}
keerthana
質問する
3883 次
3 に答える
2
big-Oに関しては、処理される配列要素の数に比例して線形であるため、 O(n)
(注: あなたのコードは i パラメーターを上書きします。合計する配列要素の数を示すために、パラメーターが n であることが意図されていたと仮定しますか?)
于 2009-07-24T08:07:18.850 に答える
1
Cost Times
tsum=0; c1 1
for(i=0;i<n;i++) c2 n+1
tsum=tsum+array[i]; c3 n
return tsum; c4 1
アルゴリズムの総コストは 1*c1 + (n+1) c2 + n c3 + 1*c4
したがって、このアルゴリズムに必要な時間は n に比例します。
于 2009-07-24T08:17:33.930 に答える
1
1ステップでtsum=0を宣言してから、nステップのループを実行します。1回の繰り返しで1ステップの合計をして、1ステップでツムを返します。あなたの歩数はおおよそ次のとおりです。
1 + 3n + 1、これは big-oh 表記法で言えば O(n) であり、定数とすべての低次項 (それらの定数が存在する場合) を無視します。各反復のように 3n ステップがあり、変数 i をインクリメントし、それが n より小さいかどうかを確認してから、ループに入って計算を行います。
于 2009-07-24T08:15:20.317 に答える