宿題の質問があります:
- ステートメント x = x + 1 が実行される回数のシータ表記を見つけます。(10点)。
i = n
while (i >= 1)
{
for j = 1 to n
{
x = x + 1
}
i = i/2
}
これは私がやったことです:
では、まず簡単にしましょう。最初に、次の成長の順序を見つけます。
while (i >= 1)
{
x = x + 1
i = i/2
}
成長の順序を持O(log(n))
つ実際には対数ベース2
もう一方の内側の for ループは n 回実行されるため、アルゴリズムは次の順序である必要があります。
O(log(n)*n)
私が混乱する部分は、theta 表記が big-O ではないことを見つけることになっていることです。シータ表記は、上限と下限で関数をバインドすると想定されていることを知っています。正解はTheta(log(n)*n)
?
このリンクで答えを見つけましたが、その答えにたどり着く方法がわかりません。答えが Theta(n) であると彼らが主張するのはなぜですか?