簡體   English   中英

如何解 T(n)=T(n/4)+T(3n/4)+nlogn

[英]How to solve T(n)=T(n/4)+T(3n/4)+nlogn

我有一個問題來解決這個遞歸復雜性T(n)=T(n/4)+T(3n/4)+nlogn 你能幫我解決嗎?

您可以使用帶有以下參數的Akra-Bazzi 方法

a_1 = a_2 = 1, 
b_1 = 1/4, b_2 = 3/4
p = 1

T(n) = \Theta(n * (1 + integral( u log(u)/ u^2 du,1, n))) = 
       \Theta(n * (1 + (log^2(n)/2))) = 
       \Theta(n log^2(n))

注意 3n/4 > n/4。 因此我們可以看到 T(n) <= 2T(3n/4) + n log n。

現在我們可以應用主定理。 我們可以看到 a=2, b=4/3 和 f(n) = n log n

我們可以看到,log_(4/3) 2 = 2.41

因此 n^log_b a >= f(n)。

因此根據馬斯特定理,我們有 T(n) = O(n^2.41)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM