我应该实现一个递归算法:
T0(y) = 1
T1(y) = y
Tn(y) = 2yTn-1(y) - Tn-2(y) for n>1
这是我的实现方式:
public static int TP(int y, int n) {
if (n == 0) {
return 1;
} else if (n == 1) {
return y;
} else {
return 2*y*TP(y, n-1) - TP(y, n-2);
}
}
我实现算法了吗? 以及如何计算n的渐近运行时间。
答案 0 :(得分:0)
n
,该函数进行两次递归调用,直到到达n = 0 or 1
。n
级别的二叉树(每次调用
函数两次递归调用它。O(2^n)
。O(n)
上通过 记忆化 解决。