【问题标题】:how to solve a iterative substitution equation?如何求解迭代替换方程?
【发布时间】:2020-04-24 21:49:55
【问题描述】:

所以我正在努力解决一个问题,我需要使用迭代替换来找到这个等式的时间复杂度,现在我了解如何扩展等式但是我不知道如何使用它来找到时间复杂度。我知道答案是o(n^log2 3)

T(n) = 3T(n/2) + O(n)

我已经从这里扩展了,接下来我该怎么做?

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

接下来我该怎么做才能得到o(n^log2 3)的答案?
有人可以逐步向我解释一下吗?

【问题讨论】:

    标签: algorithm recursion


    【解决方案1】:

    可以这样解决:

    T(n) = 3T(n/2) + O(n)
    
         = 3(3T(n/4) + O(n/2)) + O(n)
    
         = 3^2(T(n/4)) + O(n)
    
         = 3^4(T(n/8)) + O(n)
    

    注意O(n/4) + O(n/2) + O(n) 仍然是O(n)

    let n = 2^k
    
    then T(n) = 3^(k-1) + O(n)
    
              = 3^(log(n) - 1 ) + O(n) // log(n) is log (n) to base 2
    
              = O( n^log(3) ) because n^log(3) > n 
    

    【讨论】:

    • 嗨,日志是从哪里来的?在第二部分?
    • 如果n = 2^k 两边都取loglog(n) = k
    猜你喜欢
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 2013-05-10
    • 2011-08-26
    • 1970-01-01
    • 2016-02-15
    相关资源
    最近更新 更多