簡體   English   中英

如何使用遞歸求解T(n)= 5T(n / 2)+ O(nlogn)

[英]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( )。因此,如果嘗試通過替換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( )來簡化求和,並使用該值重新調整總和以使其更易於操作。

  • 通過這種簡化,我們基本上使用與以前相同的技術來重做分析-幾何級數的總和,交換指數和對數中的項-以得出結果。

希望這可以幫助!

暫無
暫無

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

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