回答:
ですから、いくつかはっきりさせておきますが、big-O表記に興味があります。これは上限を意味します。つまり、実際よりも多くの歩数をカウントしても問題ありません。特に、アルゴリズムを変更して、
...
for (j = 0; j < n; j++)
...
もちろん、上限を適切に見積もる必要があります。したがって、完了のために、下限を決定したいと思います。これは、より少ないステップを数えることを意味します。変更を検討してください
for (i = n/2; i < n; i++)
for (j = 0; j < n/2; j++)
sum++;
詳細については、こちらをご覧ください。
これを説明できるか見てみましょう...
したがって、内部ループがjだった場合
ここで、最初の反復では、内側のループをn-(n-1)回実行します。2回目は、内側のループをn-(n-2)回実行します。N回目はn-(nn)回、つまりn回実行します。
内部ループを通過する回数を平均すると、n / 2回になります。
つまり、これはO(n * n / 2)= O(n ^ 2/2)= O(n ^ 2)と言えます
それは理にかなっていますか?