【问题标题】:How to solve ????(????) = 2????(????/2) +1 with Substitution Method如何解决 ??????(????) = 2????(??????/2) +1 用替换方法
【发布时间】:2021-02-05 15:11:48
【问题描述】:

这里我得到了一个递归函数,我想用 Substitution Method (数学归纳法)解决这个问题(求时间复杂度)。

????(????) = 2????(????/2) +1

在提到的问题中,我们的猜测应该是 Ω(log n) 。实际上我用数学归纳法证明了 T(n) = O(n) 然后因为 n = Ω(log n) 所以 T(n ) 也是。但我没有成功证明它正确。

我已经看到了之前询问过的这个函数的所有答案,但没有用 Substitution Method 解决。你能帮我用这种方式证明吗?

【问题讨论】:

    标签: recursion time-complexity big-o substitution


    【解决方案1】:

    你的策略是正确的。我们通过归纳证明T(n) = Theta(n)

    我们假设 w.l.o.g.初始条件T(n) = 1

    归纳假设:T(n) = 2n - 1.

    基本情况:T(1) = 1 = 2 * 1 - 1

    归纳案例:

    T(n) = 2T(n/2) + 1
         = 2 (2n/2 - 1) + 1 (inductive hypothesis)
         = 2n - 1 (QED)
    

    因此T(n) = Theta(n),然后从那里跟随例如那T(n) = Omega(log n)等等。

    【讨论】:

      猜你喜欢
      • 2011-10-28
      • 2012-09-14
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      • 2016-05-21
      • 2012-10-08
      相关资源
      最近更新 更多