-1

以下のような方法の効率分析を作成するのに助けが必要です。私は思いつく必要があります:

  1. ランタイムに影響する要因
  2. カウントされているのは何ですか (比較、操作)?
  3. 最良/最悪のケース
  4. ビッグオー記法

これが私がこれまでに持っているものです:

  1. 配列の長さ
  2. 数学演算
  3. メソッドはその内容に関係なく配列全体を実行するため、最悪の場合と最良の場合は同じです。
  4. わからない

どう考えているか教えてください。

ありがとう

double sum(double[] array) {
    return recursiveSum(array, 0, array.length - 1);
}

double recursiveSum(double[] array, int lo, int hi) {
    if (lo == hi) {
        return array[lo];
    }

    int mid = (lo + hi) / 2;
    double leftsum = recursiveSum(array, lo, mid);
    double rightsum = recursiveSum(array, mid+1, hi);
    return leftsum + rightsum;
}
4

1 に答える 1

0

私の答え:

  1. 配列の長さ
  2. わからない
  3. メソッドはその内容に関係なく配列全体を実行するため、最悪の場合と最良の場合は同じです。
  4. O(nlogn) (f(n)=2*f(n/2) -> f(n)=O(nlogn))
于 2013-05-10T05:09:11.973 に答える