Java递归效率分析

时间:2013-05-10 04:33:00

标签: java recursion

我需要帮助为下面的方法创建效率分析。我需要提出:

  1. 影响运行时的因素
  2. 计算什么(比较,操作)?
  3. 最佳/最差案例
  4. Big O Notation
  5. 这是我到目前为止所拥有的:

    1. 数组长度
    2. 数学运算
    3. 最坏情况和最佳情况相同,因为该方法将运行整个数组,无论其内容如何
    4. 不知道
    5. 让我知道你的想法。

      由于

      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;
      }
      

1 个答案:

答案 0 :(得分:0)

我的回答:

  1. 数组长度
  2. 不知道
  3. 最坏情况和最佳情况是相同的,因为该方法将运行 整个数组,无论其内容如何
  4. O(nlogn)(f(n)= 2 * f(n / 2) - > f(n)= O(nlogn))