【问题标题】:Solving recurrence using the iteration method使用迭代方法解决递归
【发布时间】:2021-12-11 13:33:50
【问题描述】:

我需要帮助解决 T(n) = T(n/4) + T(n/3) + 2n 使用迭代方法(递归树。我想它会是 Θ(2n) 或 Θ(n )?

【问题讨论】:

  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: algorithm recursion iteration runtime recurrence


【解决方案1】:

这很简单。我们有以下两个不等式:

T(n) > 2T(n/4) + 2n

and

T(n) < 2T(n/3) + 2n

现在,尝试通过展开找到上限和下限。根据这两种情况,你会发现T(n) = Theta(n)

例如,对于T'(n) = 2T(n/3) + 2n,我们有以下扩展:

T'(n) = 2T(n/3) + 2n = 2^2 T(n/3^2) + (1 + 2/3) * 2n

通过归纳我们可以证明:

T'(n) = 2^log_3(n) T(0) + (1 + 2/3 + 2^2/3^2 + ...) * 2n  
      < n + 6 * n = 7n

因为2^log_3(n) &lt; 2^log_2(n) = n(1 + 2/3 + 2^2/3^2 + ...) 是因子2/3 的几何和。因此,当n 变为无穷大时,总和将为1/(1-2/3) = 3

您可以对T(n) 的下限进行相同的分析。

因此,作为c1 * n &lt;= T(n) &lt;= c_2 * n,我们可以得出结论T(n)Theta(n)中。

【讨论】:

  • 如何使用迭代法解决?
  • @algor 这里,我们用迭代法解决了。
猜你喜欢
  • 2020-07-02
  • 2015-08-31
  • 1970-01-01
  • 2013-07-22
  • 1970-01-01
  • 1970-01-01
  • 2020-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多