1

時間計算量について質問したいと思います。

Sum (array,n)
{
1.1 total_sum = 0;
1.2 for (i=0;i<n;i++)
1.2.1 total_sum = total_sum +array[i];
1.3 return total_sum;
}

1.2ステートメントの合計ステップは2(n + 1)です。なぜそれが2(n + 1)であるかを誰かに教えてもらえますか?

4

1 に答える 1

0

たとえば、i=n-1です。インクリメントされ、ループが戻ります。もう1つの比較が行われ、今回はfalseと評価されます(iがnに等しいため)。全体として、この0、1、...、n回を実行し、そのたびに2つの操作(一緒に2(n + 1))を実行します。i ++ステートメントはn回しか評価されませんが、ループの先頭に1つの追加ステートメントがあることに注意してください(i = 0)。

于 2012-10-11T17:26:36.587 に答える