如何确定下一个函数的T(n)的递推公式?
if(N == 0)
return 1;
s = 0;
x = function(N/3);
for(i = 1; i <= N; i++){
s += x;
}
return s;
答案 0 :(得分:1)
您可以标识复杂度为x = function(N/3)
的递归调用T(n/3)
。接下来是N
个附加项,因此需要进行N
个操作。
因此,此函数的复杂性的递归关系为
T(n) = T(n/3) + n
因此
T(n) = O(n.log3(n))
答案 1 :(得分:0)
您可以使用主定理:
T(n)= a * T(n / b)+ C * n ^ k(a,b,C> 0,k在N中)
情况1:a T(n)在Θ(n ^ k)中
情况2:a = b ^ k-> T(n)以Θ(n ^ k * log(n))表示
情况3:a> b ^ k-> T(n)在Θ(n ^ logb a)中
在您的情况下,T(n)= 1 * T(n / 3)+С* n ^ 1。
a = 1,b = 3,k = 1-> T(n)在Θ(n)中。