コンピュータ サイエンス II のファイナルは明日です。コード セグメントのビッグ オーを見つける方法を理解するための助けが必要です。私はインターネットを検索しましたが、どのように理解する必要があるかの例を見つけることができませんでした.
以下は、サンプルファイナルの問題です。
for(int pass = 1; i <= n; pass++)
{
for(int index = 0; index < n; index++)
for(int count = 1; count < n; count++)
{
//O(1) things here.
}
}
}
アルゴリズムの順序 (Big-Oh) を見つけることになっています。
O(n^3) になると思いますが、その結論に至った経緯は次のとおりです。
for(int pass = 1; i <= n; pass++) // Evaluates n times
{
for(int index = 0; index < n; index++) // Evaluates n * (n+1) times
for(int count = 1; count < n; count++) // Evaluates n * n * (n) times
{
//O(1) things here.
}
}
}
// T(n) = (n) + (n^2 + n) + n^3
// T(n) = n^3 + n^2 + 2n
// T(n) <= c*f(x)
// n^3 + n^2 + 2n <= c * (n^3)
// O(n) = n^3
私はそれを正しく行っているかどうかわかりません。誰かがこのようなコードを評価する方法を説明したり、私の答えを確認したりできますか?