当前位置:  开发笔记 > 人工智能 > 正文

使用迭代方法求复杂度T(n)= 4T(n/2)+(n ^ 2)*logn

如何解决《使用迭代方法求复杂度T(n)=4T(n/2)+(n^2)*logn》经验,为你挑选了1个好方法。

我只需要使用迭代方法找到这种递归的复杂性:

T(n) = 4T(n/2) + (n^2)*logn

我知道你可以使用master方法解决这个(n^2)(logn)^2问题,而且复杂性是,但我尝试使用迭代方法解决它,我得到了别的东西:

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

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

T(n) = 64T(n/8) + 16((n/4)^2) * log(n/4) + 4((n/2)^2) * log(n/2) + (n^2)log(n)

T(n) = (4^i) * T(n/(2^i)) + 4^(i-1) * (n/(2^(i-1)))^2 * log(n/(2^(i-1)))

在使用i = logn之后,我得到该算法的复杂度为2 ^ n ..这是不正确的.



1> Salvador Dal..:

如果您将小心地解除递归,您将得到: 在此输入图像描述.

现在复杂的总和变成了

在此输入图像描述

n/2^k = 1或时,这种递归会耗尽自己k = log(n).在等式中将其替换回来:

在此输入图像描述,哪里c = T(1).

所以一切都由主导n^2 log^2(n),这是你的递归的复杂性.

PS实际上不需要近似求和,用初等数学很容易计算出它.

在此输入图像描述

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有