【问题标题】:Time Complexity Solution时间复杂度解决方案
【发布时间】:2020-11-13 01:26:06
【问题描述】:

帮我解决这个递归关系

T(n) = 8T(n/2) + qn , n > 1

= p , n = 1

答案是:n^3

请用回代法解决。

以下是我对这个问题的尝试。

【问题讨论】:

标签: algorithm recursion recurrence


【解决方案1】:

你做得对:

T(n) = 8T(n/2) + qn 
=>  T(n) = 8(8T(n/4) + q(n/2)) + qn = 8^2 T(n/2^2) + q(n + 8 * n/2)
=>  T(n) = 8^2‌(8T(n/2^3) + q(n/2^2)) + q(n + 8 * n/2)
         = 8^3 T(n/2^3) + q ( n + 8 * n/2 + 8^2 * n/2^2)

现在通过归纳(如果我们假设 n = 2^kT(1) = 1):

T(n) = q * sum_{i=0}^{k} 8^i * n / 2^i

现在,根据我们知道的8^i / 2^i = 4^i 简化等式,并从总和中分解n,我们有:

T(n) = q * n * sum_{i=0}^{k} 4^i = q * n * (4^k - 1)

作为4^k = 2^{2k} = (2^k)^2 = n^2,我们可以这样写:

T(n) = q * n * (n^2 - 1) = Theta(n^3)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-21
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多