繁体   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