私は大きな O 表記に関するフォーラムを検索しており、かなりのことを学びました。私の問題はかなり具体的であり、ユニークなケースが大きな O を理解するのに役立つと思います。定数は無視しています。
私の理解では、ループが O(n) よりもすべての要素を通過する場合。
for(int i = 0; i < n; i++)
{
}
ループが n のすべてを通過する場合、n のすべてを通過する別のループ内では、n * n = n^2 が乗算されます。
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
}
}
最後に、ループの後にすべての要素を通過する別のループが続く場合、n + n = 2n です。
for(int j = 0; j < n; j++)
{
}
for(int k = 0; k < n; k++)
{
}
私の質問は、これらのコード行に直接進みます
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
}
for(int k = 0; k < n; k++)
{
}
for(int l = 0; l < n; l++)
{
for(int m = 0; m < n; m++)
{
}
}
}
したがって、上記のルールに基づいて、大きな O が n * (n + n + n * n)、つまり n^3 + 2n^2 になるように計算しています。それで、それは私の大きなO(n ^ 3)になりますか、それとも私の大きなOはO(n ^ 3 + 2n ^ 2)になります。私はこれについてすべて間違っていますか?それとも私は球場の近くにいますか?主に、これらのループが O(n^4) 未満になるかどうかを調べようとしています。前もって感謝します。