3

次のコードの Big O の計算に問題があります。私は決して賢いクッキーではありません。誰か親切に説明してくれませんか。ここでの私の推測では、ネストされたループのために O(N^2) でしたが、それ以上のものがあることはわかっています。

static inline int f1 (int a, int b)
{
 for (int c = 0; c < b; c++)
 {
   a -= n;
 }
 return a;
}

int f2 (int n) 
{
  int r = n * n * n;
  for (double i = n; i >= 0; i -= 2)
  {
     r = f1(r, i);
  }
  return r;
}
4

3 に答える 3

0

数学的に言えば、次のように正式に進めることができます。

ここに画像の説明を入力

ここで、 opは で実行される定数時間操作の数ですf1()op'などを追加することもできましf2()たが、それは必要ではないようです。

操作の数を計算するには、T(10) としop = 1ます。

于 2014-04-02T01:28:16.380 に答える