Math 求解T(n)=4T(n/2)和#x2B;n^3+;n*(日志(n))^2

Math 求解T(n)=4T(n/2)和#x2B;n^3+;n*(日志(n))^2,math,data-structures,runtime,recurrence,Math,Data Structures,Runtime,Recurrence,我试图用替换法解决一个递归问题。递推关系为: T(n) = 4T(n/2) + n^3 + n*(log(n))^2 我也尝试用master方法解决这个问题。您可以使用的第一个辅助方法是n=2^k。您的复发变成: T(2^k)=4T(2^(k-1))+2^(3k)+2^k*log(2^k)^2 或 T(2^k)=4T(2^(k-1))+2^(3k)+c*k^2*2^k 其中c=(日志2)^2 在另一个假设之后,S(k)=T(2^k)除以4^k我们得到 S(k)/4^k=S(k-1)/4^(k-

我试图用替换法解决一个递归问题。递推关系为:

T(n) = 4T(n/2) + n^3 + n*(log(n))^2

我也尝试用master方法解决这个问题。

您可以使用的第一个辅助方法是
n=2^k
。您的复发变成:

T(2^k)=4T(2^(k-1))+2^(3k)+2^k*log(2^k)^2

T(2^k)=4T(2^(k-1))+2^(3k)+c*k^2*2^k

其中
c=(日志2)^2

在另一个假设之后,
S(k)=T(2^k)
除以
4^k
我们得到

S(k)/4^k=S(k-1)/4^(k-1)+2^k+c*k^2/2^k

我们的最终结果是
R(k)=S(k)/4^k
,新的重现期是

R(k)=R(k-1)+2^k+c*k^2/2^k

通过伸缩(即对这些方程求和k=2,3,…,n),我们得到

R(n)=R(1)+和(2^k)+c*和(k^2/2^k)

(其中两个总和从k=1到k=n-1)

最后,

R(n)=R(1)+2^n-1+c*(6-(n^2+2n+3)/2^(n-1))


T(2^k)
可以很容易地从上一个方程中找到。对于
T(n)
的其他值(当n不是2的幂时),如果没有额外的假设(例如连续性),就没有足够的数据)。

从时间复杂度的角度来看,
T(n)=4T(n/2)+n^3+n*(log(n))^2
T(n)=4T(n/2)+n^3
相同


现在使用a,您有
a=4
b=2
,因此
c=logb(a)=2
。因为
n^c
的增长速度比你的
f(n)=n^3
慢,你会陷入第三种情况,时间复杂度是
O(n^3)

这个问题似乎离题了,因为它属于最后一个术语,与n^3相比可以忽略不计。然后使用Master定理+1。这不是望远镜,但这是一个小诡辩。