以下のような方法の効率分析を作成するのに助けが必要です。私は思いつく必要があります:
- ランタイムに影響する要因
- カウントされているのは何ですか (比較、操作)?
- 最良/最悪のケース
- ビッグオー記法
これが私がこれまでに持っているものです:
- 配列の長さ
- 数学演算
- メソッドはその内容に関係なく配列全体を実行するため、最悪の場合と最良の場合は同じです。
- わからない
どう考えているか教えてください。
ありがとう
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;
}