log(n)=Ω(n)?

时间:2011-06-04 21:53:12

标签: complexity-theory big-o

我相信不是。定义是:

log(n) >= c*n for some n = x, and all n > x

我认为不是因为c * n = c的增长率。 log(n)的增长率= 1 / n。因此,如n->无穷大,n的增长率接近0,而c,c * n的增长率是恒定的。鉴于最终log(n)最终将比任何n * c增长得慢,其中c> 1。 0,n * c将超过log(n)。

所以,几个问题。

  1. 我可以假设c> 0来自big omega的定义?
  2. 我的直觉是否正确?
  3. 我对上面的证据感到矛盾。因为对于非常小的c,log(n)= cn很早,我的上述假设意味着它们会再次相交,这意味着log(n)= cn有多个解决方案,这似乎是错误的。
  4. 我非常困惑并感谢你的帮助!

2 个答案:

答案 0 :(得分:6)

1- c不能为0或负数,所以你可以假设。

2-例如,对于每log(n)n的增长率低于n > 1的增长率。由于Ω(n)是比函数f(n) = n“增长更多”的函数集,因此log(n)不是Ω(n)。但你可以说n =Ω(log(n)),虽然这不是渐近的紧束缚。

3-该定义指出不等式可能从一个值n0开始有效。如果存在一些n0,您可以这么说。但在这种情况下(log(n)=Ω(n)),它不会,因为它必须对每个n >= n0有效。而对于任何大的价值,log(n)的增长都低于n的增长。

答案 1 :(得分:1)

不,实际情况恰恰相反。

  • log(n)功能的运行时间为O(n)

[读取:上限由某个多项式fn限定,其最高阶项为n]

  • fn的运行时间为n <{1}}

    [读取:由一些多项式fn下限,其最高阶项为Ω(log(n))]

关于你的直觉,这是完全正确的。 log(n)仅在一个点上开会。