Math 求递推T(n)=T(n/1000)+T(999n/1000)+cn?

Math 求递推T(n)=T(n/1000)+T(999n/1000)+cn?,math,big-o,time-complexity,recurrence,Math,Big O,Time Complexity,Recurrence,这种复发的解决方案是什么 Tn=Tn/1000+T999n/1000+cn 我认为它在logn上,因为每个级别完成的工作将是cn,树的高度将是logn,以1000/999为基数,但我不确定推理是否有效。这是正确的吗?需要注意的一点是,对于第一个log1000n层,递归的所有分支都将处于活动状态,即,n/1000情况下的分支不会触底,每层所做的工作将为Θn。这将为您提供运行时的即时下限,即Ωn logn,因为每个Θlogn层都在做Θn工作 对于低于该值的层,工作开始下降,因为n/1000案例的分支

这种复发的解决方案是什么

Tn=Tn/1000+T999n/1000+cn


我认为它在logn上,因为每个级别完成的工作将是cn,树的高度将是logn,以1000/999为基数,但我不确定推理是否有效。这是正确的吗?

需要注意的一点是,对于第一个log1000n层,递归的所有分支都将处于活动状态,即,n/1000情况下的分支不会触底,每层所做的工作将为Θn。这将为您提供运行时的即时下限,即Ωn logn,因为每个Θlogn层都在做Θn工作

对于低于该值的层,工作开始下降,因为n/1000案例的分支将从底部开始。但是,您可以通过假装树中的每一层都将做n个功来限制所做的功。在这种情况下,在999n/1000案例见底之前,会有log1000/999 n层,因此您会得到logN的上限,因为您有ΘlogN层做Θn工作

因为完成的工作是Ωn logn和On logn,所以运行时是Θn logn


希望这有帮助

高度是否会改变或记录到1000/999的底部