![](/img/trans.png)
[英]How to solve the recurrence equation T(n)=T(n/2)+T(n/4)+\Theta(n)?
[英]How to solve the recurrence of T(n) = 2 * T(n/3) + 3/2 * T(n/4) + 5 * T(n/2) + Theta(n^2), p = 2,574359
如何求解 T(n) = 2 * T(n/3) + 3/2 * T(n/4) + 5 * T(n/2) + Theta(n^2), p = 2 的遞歸,574359 我不明白如何解決如此復雜的復發。
您可以找到如下所示的上限:
T(n) <= (2 + 3/2 + 5) * T(n/2) + Theta(n^2) = 8.5 T(n/2) + Theta(n^2)
使用主定理,您可以說T(n) = O(n^{log(8.5)) ~ O(n^{3.09})
。
此外,您可以使用akra-bazzi 定理找到更緊密的界限。 首先,我們需要求解以下方程
2 * (1/3)^p + 3/2 (1/4)^p + 5 * (1/2)^p = 1
求解后,我們知道p ~ 2.57
。 因此,根據定理,我們發現:
T(n) = Theta(n^{2.57} (1 + int(x^2/x^{3.57} dx, 1, n) ) ) =
Theta(n^{2.57} (1 + int(1/x^{1.57} dx, 1, n) ) )
作為int(1/x^{1.57} dx, 1, n) < 3
,我們可以說T(n) = Theta(n^{2.57})
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.