【问题标题】:Calculating complexity of logarithm计算对数的复杂度
【发布时间】:2020-11-21 10:46:51
【问题描述】:

众所周知,将节点插入 AVL 树的复杂度是 log(c),而 c 是树内的节点数。 我希望将 m 个节点插入树中,因此复杂性是:

log(c)+log(c+1)+...+log(c+m)

关于如何解决这个问题并获得 Big-O 的任何想法/建议?

【问题讨论】:

  • complexity of the following 是什么意思?如果它确实是您所说的添加,它看起来像O(m)
  • 为什么是 O(m)?如果 c=0 那么它的 log(m!) 就是 O(m*log(m))
  • 您的问题要么具有误导性,要么缺少关键细节!
  • 请提供更多上下文!复杂度由算法计算得出。
  • 谢谢!在我看来,Big-O 应该是 O(NlogN) N=m+c

标签: algorithm time-complexity complexity-theory logarithm


【解决方案1】:

假设 c 不是常数:

log(c)+log(c+1)+...+log(c+m) = log(c * (c+1) * .... * (c+m))
                     = log((m+c)!/c!)
                     = log((m+c)!) - log(c!)
                     = O_theta((m+c)log(m+c)- clogc)

但为了 Big-O 的复杂性,我们通常引用宽松的界限:O(NlogN) where N=m+c

【讨论】:

    猜你喜欢
    • 2017-11-04
    • 2012-12-31
    • 2019-03-11
    • 1970-01-01
    • 2013-11-01
    • 2013-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多