📜  算法|算法分析(重复)|问题9

📅  最后修改于: 2021-06-28 23:34:11             🧑  作者: Mango

以下C函数的时间复杂度为(假设n> 0(GATE CS 2004))

int recursive (mt n)
{
   if (n == 1)
     return (1);
   else
     return (recursive (n-1) + recursive (n-1));
}

(A) 0(n)
(B) 0(登录)
(C) 0(n ^ 2)
(D) 0(2 ^ n)答案: (D)
说明:上面程序的递归表达式将是。

T(n) = 2T(n-1) + c
  T(1) = c1.

让我们解决它。

T(n) = 2(2T(n-2) + c) + c        = 4T(n-2) + 3c
  T(n) = 8T(n-3) + 6c + c          =  8T(n-3) + 7c
  T(n) = 16T(n-4) + 14c + c        =  16T(n-4) + 15c
  ............................................................
  .............................................................
  T(n) = (2^(n-1))T(1) +  (2^(n-1) - 1)c

  T(n) = O(2^n)

这个问题的测验