Time complexity 如何确定给定递归函数的运行时间T(n)?

Time complexity 如何确定给定递归函数的运行时间T(n)?,time-complexity,recurrence,Time Complexity,Recurrence,如何确定下一个函数的Tn递推公式 if(N == 0) return 1; s = 0; x = function(N/3); for(i = 1; i <= N; i++){ s += x; } return s; 您可以识别复杂度为Tn/3的递归调用x=function n/3。下面是N个加法,因此需要考虑N个操作 因此,该函数复杂性的递推关系为 T(n) = T(n/3) + n 因此 T(n) = O(n.log3(n)) 您可以使用主定理: Tn=a*Tn/

如何确定下一个函数的Tn递推公式

if(N == 0)
  return 1;

s = 0;

x = function(N/3);

for(i = 1; i <= N; i++){
  s += x;
}

return s;

您可以识别复杂度为Tn/3的递归调用x=function n/3。下面是N个加法,因此需要考虑N个操作

因此,该函数复杂性的递推关系为

T(n) = T(n/3) + n
因此

T(n) = O(n.log3(n))

您可以使用主定理:

Tn=a*Tn/b+C*n^k,a,b,C>0,k在n中

案例1:aTn在Θn^k中

案例2:a=b^k->Tn在Θn^k*log n中

案例3:a>b^k->Tn在Θn^logb a中

在您的情况下,Tn=1*Tn/3+С*n^1

a=1,b=3,k=1->Tn为Θn