【发布时间】:2013-10-29 10:48:00
【问题描述】:
在我的作业问题中,我被要求解决以下递归关系,T(n) = T(√n) + T(n - √n) + cn
这就是我解决相同问题并得到正确答案的方法。但是我的解决中有一个明显的错误。请指出如何纠正我的错误步骤。
对于所有 n > 4,我们有 , √n
因此,项 T(n - √n) 将缓慢地向 T(1) 移动,从而有助于递归树的高度。
通过简单的数学,我们可以说在 √n 次迭代之后,项 T(n - √n) 最终将是 T(1)。 (这是我出错的地方。我原以为这些术语会减少如下,T(n - √n),T(n - 2√n),T(n - 3√n),但他们没有)
因此上述树的高度为√n。
每个级别的运营成本最多为cn。
因此操作的总成本是√n * cn。
因此算法的运行时间为O(n√n)
【问题讨论】:
-
"通过简单的数学" - 错误 :) 只是做一个 simple 替换...在下一个递归步骤中 n 是 n - √n
-
是的,我意识到我的错误:P。但是现在有了正确的替换,我无法找到复杂性。
标签: algorithm recurrence