簡體   English   中英

遞歸W(n)= 2W(floor(n / 2))+ 3

[英]The Recurrence W(n)= 2W(floor(n/2)) + 3

我有這種情況:

W(n)= 2W(floor(n/2)) + 3
W(2)=2

我的嘗試如下:

樹是這樣的:

W(n) = 2W(floor(n/2)) + 3
W(n/2) = 2W(floor(n/4)) + 3
W(n/4) = 2W(floor(n/8)) + 3 
...
  • 樹的高度:我假設它的lgn因為樹在每個擴展過程中都有2個分支,但不確定:S
  • 最后一級的成本:2 ^ lgn * W(2)= 2n
  • 所有等級的成本直到等級h-1:3 * sigma從0到lgn-1(2 ^ i),這是一個幾何序列= 3(n-1)

那么,T(n)= 5n - 3屬於Theta(n)

我的問題是:是嗎?

那么,如果你計算W(4) ,你會發現W(4) = 2*W(2) + 3 = 2*2 + 3 = 7 ,但是5*4 - 3 = 17 ,所以你的結果是T(n)不正確。 然而,它很接近,你的推理(或者可能在某個其他地方)只是一個小的滑動。

編輯:具體來說,如果給出了W(1) ,你的計算就會起作用,但在問題中它是W(2) 要么是后者是一個錯字,要么是一個身高的人。 (當然,Saeed Amiri說過。)

我認為它不是5n-3除非n是2 t ,但是你的θ是正確的,如果你看一下Master定理 ,沒有必要計算它(但它對啟動有好處):

假設你有:

T(n)= aT(n / b)+ f(n),其中a> = 1,b> 1則:

  1. 如果f(n)= n log b a-eps對於任何eps> 0那么T(n)= n log b a就像你的情況一樣,其中a = b = 2,f(n)= O(1)。
  2. f(n)= Theta(n log b a * log k n)然后T(n)= Theta(n log b a * log k + 1 n)。
  3. 否則是Theta(f(n))。 (在CLRS或wiki中查看本例中的約束細節,......)

詳情請見維基。

暫無
暫無

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

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