【问题标题】:Solving a recurrence with exponential rule where master theorem does not apply使用主定理不适用的指数规则求解递归
【发布时间】:2020-02-23 21:04:11
【问题描述】:

我正在尝试解决以下重复:

$T(n) = 3T(n^{\frac{2}{3}}) + \log n$

但我不知道该怎么做,因为主定理不适用。我尝试如下绘制递归树:

但不确定从那里去哪里,例如试图找出树的高度或最后一层中的节点数。任何有关如何找到复发的整体大 theta 的指导将不胜感激。

【问题讨论】:

    标签: algorithm recursion time-complexity


    【解决方案1】:

    当您扩展公式时,我们将有:

    T(n) = 3 log(n^{2/3}) +‌ 3^2 log(n^((2/3)^2)) + ... + 3^k log(n^((2/3)^k)) + log(n)
    

    在上面的等式中,k 是树的高度。如果我们假设n = 2 ^ ((3/2)^k),最后我们将在n^((2/3)^k) 中拥有2。因此,k = log_{3/2)(log(n))。另外,我们知道log(n^a) = a log(n)

    T(n) = 2 log(n) + 2^2 log(n) + ... + 2^k log(n) + log(n) = 
             log(n) (1 + 2 + 2^2 + ... + 2^k) =
             (2^(k+1) - 1) log(n)
    

    因此,2^k = O(log^2(n))T(n) = O(log^2(n) * log(n)) = \O(log^3(n))

    【讨论】:

    • 应考虑k = log_{3/2}(log(n))中外对数的底
    • @meowgoesthedog 感谢您的通知。正常情况下,如果不提及,则为log_2,此处也一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 2014-06-26
    • 2022-08-09
    • 1970-01-01
    • 2017-12-26
    相关资源
    最近更新 更多