【问题标题】:How to calculate the time complexity [duplicate]如何计算时间复杂度
【发布时间】:2021-01-08 10:27:23
【问题描述】:

任何人都可以帮助解释为什么这个函数

F(n) = F(n/3) + 1 其中 F(0) = 0

时间复杂度为 O(Log n),对数基数为 3。

是否有数学符号或任何可以帮助向我解释如何获得结果的方法。谢谢

【问题讨论】:

    标签: algorithm math time-complexity


    【解决方案1】:

    通过替换,可以很简单的做到:

    F(n) = F(n/3) + 1 = F(n/3^2) + 1 + 1 = 1 + 1 + ... + 1 (log_3(n) times)
    

    因为每次n 除以3 并且1 被添加到结果中,如果我们假设n = 3^kF(n) = k。因此,F(n) = O(log(n))。以对数为底的常数 (>1) 对复杂度的顺序没有任何影响,即log_a(n) = Theta(log_b(n)) (a,b > 1)。

    【讨论】:

    • 好的,谢谢您的回答。感谢@OmG
    猜你喜欢
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多