[英]Solve recurrence T(n) = T(6n/5) + 1
因此,我正在为算法考试做准备,而且我不知道如何解决该递归T(n) = T(6n/5) + 1
因为b = 5/6 < 1
并且无法应用Master定理。 我希望有人能给我一些解决方法的提示。 :)
仅考虑该递归关系(并且当x > 100
时没有其他信息,如T(x) = 1
),该关系所描述的具有时间复杂性的算法将永远不会终止,因为每次调用的工作量都会增加。
T(n) = T(6n/5) + 1
= T(36n/25) + 2
= T(216n/125) + 3
= ...
您可以看到每个呼叫的工作量增加了,并且增加的数量没有限制。 结果,函数的时间复杂度不受限制 。
我们甚至可以(非正式地)争辩说这样的算法不存在-将输入大小增加1.2
倍,每次调用至少需要0.2n
工作,这显然是O(n)
-但每一步的实际成本据称为1
, O(1)
,因此不可能存在由这种精确的递归描述的算法(但是对于具有递归的算法(例如T(n) = T(6n/5) + n
)来说是很好的)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.