Performance 重现期W(n)=2W(楼层(n/2))和#x2B;3.

Performance 重现期W(n)=2W(楼层(n/2))和#x2B;3.,performance,algorithm,recursion,geometry,Performance,Algorithm,Recursion,Geometry,我有这样的反复: 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级之前所有级别的成本:从0到lgn-1的3*sigma(2^i),这是一个几何

我有这样的反复:

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级之前所有级别的成本:从0到lgn-1的3*sigma(2^i),这是一个几何级数=3(n-1)
T(n)=5n-3,属于θ(n)


我的问题是:这是对的吗?

如果你计算
W(4)
,你会发现
W(4)=2*W(2)+3=2*2+3=7
,但是
5*4-3=17
,所以你对
T(n)
的结果是不正确的。这很接近,不过,在你的推理中有一个小失误(或者可能在某个地方)


编辑:具体地说,如果给出了
W(1)
,您的计算将有效,但问题中的
W(2)
。要么后者是一个打字错误,要么你的身高差了一个。(当然,还有赛义德·阿米里所说的。)

我不认为它是精确的
5n-3
,除了n是2t,但是你的θ是对的,如果你看,没有必要计算它(但它对启动有好处):

假设您有:

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

  • 如果f(n)=任何eps>0的nlogba eps,那么T(n)=nlogba与您的情况类似,其中a=b=2,f(n)=O(1)
  • f(n)=θ(nlogba*logkn),然后T(n)=θ(nlogba*logk+1n)
  • 否则为θ(f(n))。(请参见CLRS或wiki中本例中约束的详细信息,…)

  • 有关详细信息,请参见wiki。

    高度为lgn,因为在每个级别上,输入的大小都被切成两半,根据定义,这是log base 2。从另一个角度来看,log是power的倒数,在这个问题上,我不能使用master定理,所以我试图用递归树把它弄对。。谢谢你的回答。Amiri@Sosy我建议稍后阅读主定理证明,它将对你有很大帮助。嗯,我很确定我的错误是在最后一级中找到每级的成本,我所做的是:(2^lg n)(W(2)),因为我认为在最后一级子问题的大小将减少到2。是这样吗?