私はそのような簡単なループの基本的な概念を理解しているようです...最初のループはO(n)で実行され、内側のループも同様です。どちらもネストされているため、乗算して合計実行時間O(n ^ 2)を取得します。
sum = 0;
for ( i = 0; i < n; i++ )
for j = 0; j < n; j++ )
++sum;
物事が切り替わり始めると、私はそれを理解する方法について完全に迷子になります。次の両方の実行時間を計算する方法を誰かが私に説明できますか?また、私がさらに改善するのに役立つ、わかりやすいリファレンスへのリンクもありがたいです。ありがとう!
sum = 0;
for( i = 0; i < n; i += 2 )
for( j = 0; j < n; j++ )
++sum;
これから私が集めることができる唯一のことは、内側のループがO(n)で実行されるということです。i + = 2は、本当に私を外側のループに投げ込みます。
sum = 0;
for( i = 1; i < n; i *= 2 )
for( j = 0; j < n; j++ )
++sum;
私の試みから...外側のループはO(log(n))、内側はO(n)なので、合計はO(n log(n))ですか?