确定递归方法的递推方程

时间:2016-02-18 13:50:46

标签: math recursion big-o recurrence

给出以下递归方法

/∗∗ Returns the product of integer elements in given array. ∗/
public static int product(int[] arr, int low, int high) {
    if (high < low)
     return 1;
    if (low == high)
      return arr[low];
    return arr[low] * product(arr, low+1, high-1) * arr[high];
}

我确定了递归方程: T(n)= T(n - 2)+ c

和相应的基本情况公式: T(0)= 1

要制定已关闭的表单解决方案,请执行以下操作:

T(n) = T(n - 2) + c
T(n - 2) = T(n - 4) + c
//Substitute T(n - 2)
T(n) = T(n - 4) + 2.c
T(n) = T(n - 2k) + k.c

//Select k = 1/2.n and substitute
T(n) = T(0) + (1/2n).c
T(n) = 1 + (1/2n).c

1)我的复发等式基本情况是否正确?为什么?

2)我的封闭式解决方案是否正确?为什么?

0 个答案:

没有答案
相关问题