[英]How to solve this recursion T(n) = 5T(n/2) + n^2 lg n using master's theorem?
[英]How to solve T(n) = 5T(n/2) + O(nlogn) using recursion
所以這可能很愚蠢,但我堅持使用這種遞歸T(n) = 5T(n/2) + O(nlogn)
。 我從定理大師那里知道那應該是 ,但我無法真正到達那里。
到目前為止,我到了
我只是想知道我是否朝着正確的方向前進
您在這里肯定走對了! 讓我們看看是否可以簡化該求和。
首先,請注意,您可以從求和中提取log n項,因為它與和無關。 那給了我們
(n log n)(從k = 0到lg n(5/2) k的總和)
該總和是一個幾何級數的總和,因此它可以解決
((5/2) 對數n + 1-1)/(5/2-1)
= O((5/2) lg n )
在這里,我們可以使用(可愛的)標識log b c = c log b a來重寫
O((5/2) lg n )= O(n lg 5/2 )
= O(n lg 5-1 )
並將其重新插入我們的原始公式即可
n log n·O(n lg 5-1 )= O(n lg 5 log n)。
嗯,那不是很有效。 不過,我們真的非常接近能在這里工作的東西! 有一個很好的問題要問: 為什么這沒有用,為此,我們必須首先回到如何獲得原始匯總的位置。
讓我們嘗試使用遞歸方法擴展遞歸T(n)的幾個項。 第一次擴展給了我們
T(n)= 5T(n / 2)+ n log n。
下一個是讓事情變得有趣的地方:
T(n)= 5T(n / 2)+ n log n
= 5(5T(n / 4)+(n / 2)log(n / 2))+ n log n
= 25T(n / 4)+(5/2)log(n / 2)+ n log n
然后我們得到
T(n)= 25T(n / 4)+(5/2)對數(n / 2)+ n對數n
= 25(5T(n / 8)+(n / 4)log(n / 4))+(5/2)log(n / 2)+ n log n
= 125T(n / 8)+(25/4)n log(n / 4)+(5/2)log(n / 2)+ n log n
這里的一般模式似乎是以下總和:
T(n)=從i = 0到lg n(5/2) k n lg(n / 2 k )的和
=從i = 0到lg n的n加和(5/2) k lg(n / 2 k )
請注意,這不是您的原始金額! 特別要注意的是,對數術語不是log n,而是一個比其增長慢得多的函數。 實際上,隨着k變大,對數項變得越來越小。 實際上,如果您考慮一下,我們真正要支付全部lg n成本的唯一時間就是k = 0時。
這是一個可愛的小技巧,我們可以使用它來使此總和更容易使用。 log函數的增長非常非常非常緩慢,實際上,我們可以說對於任何ε> 0,log n = o( nε )。因此,如果嘗試通過替換lg( n / 2 k )與(n / 2 k ) ε對應一些很小但為正的ε? 好吧,那我們就會
T(n)=從i = 0到lg的n總和(5/2) k lg(n / 2 k )
= O(n從i = 0到lg n(5/2) k (n / 2 k ) ε的總和)
= O(N從i求和= 0向LG N(5/2)K Nε(1 /ε)k)的
= O(n 1 +ε從i = 0到lg n(5/2 1 +ε )的總和)
這似乎看起來像是一種魔術,但是這種技術-用微小的微小多項式代替原木-是一種可以放在后腰的好方法。 它傾向於在很多情況下出現!
我們這里使用的表達式可能看起來比我們開始時的表達式差很多,但是它將會變得更好。 假設我們選擇ε足夠小-例如,使得5/2 1 +ε大於1。 然后,該內部求和再次是一個幾何級數的和,因此我們將其簡化為
(((5/2 1 +ε ) lg n + 1-1)/(5/2 1 +ε -1)
= O((5/2 1 +ε ) lg n )
= O(n lg(5/2 1 +ε ) ) (使用之前的技巧)
= O(n lg 5-1-ε )
太好了,因為那時我們的整體運行時
T(n)= O(n 1 +εn lg 5-1-ε )
= O(n lg 5 ) ,
並且您有上限!
總結一下:
使用幾何級數和的公式以及log b c = c log b a的怪異標識,可以簡化原始求和。
但是,這不會給您一個嚴格的上限,因為您的原始求和與從遞歸方法中獲得的略有不同。
通過使用遞歸方法重復進行分析,您可以獲得更小的總和,但是卻很難評估。
我們可以通過使用對任何ε> 0的log n = o( nε )來簡化求和,並使用該值重新調整總和以使其更易於操作。
通過這種簡化,我們基本上使用與以前相同的技術來重做分析-幾何級數的總和,交換指數和對數中的項-以得出結果。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.