递归组合时间复杂度分析

时间:2017-12-10 20:43:03

标签: algorithm recursion time-complexity

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

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 formulaT,形成Pascal三角形的n级别,因此与n呈指数关系(限制)边缘情况,例如k=1k=n,例如k=n/2)。

如果cache the results,您可以将算法设为O(n*k)