【问题标题】:log base 2 equals log base 3 when analyzing time complexity? [duplicate]分析时间复杂度时,对数基数 2 等于对数基数 3? [复制]
【发布时间】:2014-05-25 21:58:10
【问题描述】:

介绍练习 4.4.6 的大多数解决方案。对算法第 3 版说, n*log3(n) = (n*lg(n)) 的大欧米伽。

当我们讨论算法的时间复杂度时,是否意味着 log3(n) 等价于 log2(n)?

谢谢

【问题讨论】:

  • 这可能不会在你的 CS 考试中给你很多分数,但我粗略的估计是任何底数大于 1 的对数都很好。
  • 是的,因为log3(n) == log2(n)/log2(3)
  • 请注意,Oli Charlesworth 的评论中的“log2(3)”是一个常量——所以它不计入渐近复杂度分析,同样的方式 O(42n)只是 O(n)。

标签: algorithm big-o time-complexity


【解决方案1】:

就大哦符号而言,对数的底并没有任何真正的区别,因为this 的重要属性称为Change of Base

根据这个性质,改变对数的底,就大哦符号而言,只会以一个常数因子影响复杂度。

所以,是的。就大哦符号而言,log3(n) 等价于 log2(n)。

【讨论】:

  • 非常感谢您的解释!
  • log1.5(n) 怎么样?我正在尝试解决 heapify 函数的重复问题,并在 log3/2(n) 上得出结论。我不确定它是 N 还是 log(n)
猜你喜欢
  • 1970-01-01
  • 2015-12-17
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 2022-09-25
  • 2020-12-19
  • 1970-01-01
  • 2016-06-17
相关资源
最近更新 更多