求解递归 T(n) = T(6n/5) + 1

Solve recurrence T(n) = T(6n/5) + 1

所以我正在准备算​​法考试,我不知道如何解决这个重复问题T(n) = T(6n/5) + 1,因为b = 5/6 < 1 和Master theorem 不能应用。 我希望有人可以给我提示如何解决这个问题。 :)

仅给出该递归关系(并且没有其他信息,例如 T(x) = 1x > 100 时),具有该关系所描述的时间复杂度的算法将永远不会终止,因为工作量会增加每次通话。

T(n) = T(6n/5) + 1
     = T(36n/25) + 2
     = T(216n/125) + 3
     = ...

您可以看到每次调用都会增加工作量,而且增加的量没有限制。因此,函数的时间复杂度没有限制。


我们甚至可以(非正式地)争辩说这样的算法不存在 - 每次调用将输入的大小增加 1.2 倍至少需要 0.2n 的工作,这显然是 O(n) - 但据称每一步的实际成本为 1O(1),因此对于以下描述的算法来说是不可能的 这种精确的循环存在(但对于具有循环的算法很好,例如 T(n) = T(6n/5) + n)。