この種の演習の目的は、機械で実行するのではなく、紙の上で分析する方法を教えることです。しかし、次のパターンを見てみましょう。
- 外側のループは合計
n
回実行されます
n
内側のループは、その時の状況に応じて1 ~ 回実行されi
ます。しかし、平均して、これは実行(n+1)/2
時間になることを知っています。
- したがって
count = n(n+1)/2)
、これはO(n^2)
算術級数を見る
更新:要求どおり - 内側のループの理由(n+1)/2
:
外側のループは、i を 1 から n の間でインクリメントします。そのため、外側のループの各反復で、内側のループは以前よりも 1 回多く「ループ」します。
したがって、内側のループはこの回数だけ繰り返されます。
だから私たちは巧妙なことをしてペアを組むことができます:
- n と 1: (n + 1) = n + 1
- n-1 と 2: (n - 1) + 2 = n + 1
- n-2 と 3: (n - 2) + 3 = n + 1
- ...
そして、これらをペアにしたので、n/2 個のペアがあります。
- したがって、1 + 2 + ... + n の合計は ( (n+1) * (n/2) ) です。
- したがって、平均は ( (n+1) * (n/2) ) / n = (n+1)/2
(長い紙に 1 + 2 + 3 + ... + n を書き、半分に折ります。)
また、カール・フリードリッヒ・ガウスに関するこの有名な話を読むことを強くお勧めします。これにより、算術級数の合計方法を常に覚えておくことができます =)