プログラムの実行時間を分析して矛盾があります。たとえば、次のコードを考えてみましょう。
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
.....
}
}
ここで、最初の for ループの計算量は O(n 2 ) で、2 番目のループの計算量は O(n) です。ただし、2 番目のループは n 2回実行されますが、最初のループは n 回実行されます。たとえば、内側のループの内側に cout ステートメントを配置すると、n 2回出力されますが、最初のループの内側で内側のループの外側に cout ステートメントを配置すると、n 回出力されます。では、なぜ内側のループの複雑さを O(n) と言うのに、外側のループの複雑さを O(n 2 ) と言うのでしょうか。外側のループの複雑さは O(n 2 ) ですが、n 回実行されるのはなぜですか? 私は何か間違ったことをしていますか?ありがとう。