O(log n)和O(log(n + a))之间的区别

时间:2019-05-17 06:03:59

标签: algorithm

我正在解决一个家庭作业问题,以简化重复操作并尝试找到上限。

我已经将方程式简化为O(log(n + 2)),并且想知道总体上是否:

O(log(n)) = O(log(n + a))是否代表任何a

2 个答案:

答案 0 :(得分:2)

是的,可以说a完全独立于输入大小。目的是显示复杂度如何相对于输入数据的大小增加/减少。

答案 1 :(得分:0)

是的,如果已知函数fO(log n),那么对于任何常量O(log(n + a)),它也是a

看到我们计算出极限

lim log(n + a) / log(n) =
  = lim log(n (1 + a/n)) / log(n) =
  = lim (log(n) + log(1 + a/n)) / log(n) =
  = lim 1 + (log(1 + a/n)/log(n)) =
  = 1

随着n达到无穷大。接下来,由于fO(log n),使用lim sup definition of the Big O notation,我们得到:

C = lim sup f(n) / log(n) =
  = lim sup f(n) / log(n + a) * log(n + a) / log(n) =
  = (lim sup f(n) / log(n + a)) * 1

因此,lim sup f(n) / log(n + a)也受C的限制,因此,fO(log(n + a))

相关问题