对T(n)
中递归二项式系数的指数时间复杂度的任何解释int C(int n, int k){
if(n==k || k==0)return 1;
return C(n-1, k) + C(n-1, k-1);
}
答案 0 :(得分:0)
让T(a,b)
成为C(a,b)
的递归调用树中调用函数C(n,k)
的次数。由于C(a,b)
和C(a+1,b)
同时调用C(a+1,b+1)
(每次调用这两个中的任何一个),我们都会T(a,b)=T(a+1,b)+T(a+1,b+1)
。这是递归调用树的最后一级中的Pascal's triangle formula:T
,形成Pascal三角形的n
级别,因此与n
呈指数关系(限制)边缘情况,例如k=1
或k=n
,例如k=n/2
)。
如果cache the results,您可以将算法设为O(n*k)
。