【发布时间】:2013-05-24 17:51:29
【问题描述】:
虽然我了解编程中算法复杂度和对数复杂度的概念,但我不知道如何确定包含不同幂变量的对数复杂度。
这里有一些例子:
log(x^2 + 3x^3) = O(?)
log(x^3 + 5) = O(?)
任何帮助将不胜感激。
谢谢。
【问题讨论】:
标签: complexity-theory big-o logarithm
虽然我了解编程中算法复杂度和对数复杂度的概念,但我不知道如何确定包含不同幂变量的对数复杂度。
这里有一些例子:
log(x^2 + 3x^3) = O(?)
log(x^3 + 5) = O(?)
任何帮助将不胜感激。
谢谢。
【问题讨论】:
标签: complexity-theory big-o logarithm
O(log(x))
只是因为log(x<sup>k</sup>) = k⋅log(x) 的数学规则(严格来自日志的定义)
另外,我们知道 O 是一个渐近乘法符号,所以乘以一个常数不会影响它。
证明:
log(x² + 3x³) ≤ log(4x³) ≤ log(x⁴) 足够大的 x
所以 log(x²+3x³) ≤ log(4x³) ≤ log(x⁴) = 4⋅log(x) 根据定义我们知道是 O(log(x))
这是上 O 界的证明
在另一个方向(显示不需要但您可能感兴趣的 Theta)
log(x²+3x³) ≥ log(x²) >= 2⋅log(x) 定义为 O(log(x))
【讨论】: