【发布时间】:2021-12-11 13:33:50
【问题描述】:
我需要帮助解决 T(n) = T(n/4) + T(n/3) + 2n 使用迭代方法(递归树。我想它会是 Θ(2n) 或 Θ(n )?
【问题讨论】:
-
请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。
标签: algorithm recursion iteration runtime recurrence
我需要帮助解决 T(n) = T(n/4) + T(n/3) + 2n 使用迭代方法(递归树。我想它会是 Θ(2n) 或 Θ(n )?
【问题讨论】:
标签: algorithm recursion iteration runtime recurrence
这很简单。我们有以下两个不等式:
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) < 2^log_2(n) = n 和(1 + 2/3 + 2^2/3^2 + ...) 是因子2/3 的几何和。因此,当n 变为无穷大时,总和将为1/(1-2/3) = 3。
您可以对T(n) 的下限进行相同的分析。
因此,作为c1 * n <= T(n) <= c_2 * n,我们可以得出结论T(n)在Theta(n)中。
【讨论】: