如果我们有f = 2x ^ 2 + log(x),如果大O(f)= x ^ 2,那么Omega(f)=?

时间:2011-02-28 19:12:13

标签: algorithm

是log(x),因为Omega是最好的情况吗?那么如果f = x + 1,则Omega(f)= 1然后是

4 个答案:

答案 0 :(得分:4)

不,Omega用于渐近下界,与O渐近上界的方式大致相同。所以,f = Omega(g)如果对于某个常量C,最终f >= C * g为真。也就是说,常量C和常数N使得n >= N隐含f(n) >= C * g(n)。它与O相同,只是不平等的方向反转。

答案 1 :(得分:3)

Nor O和Omega也不是这样的。你也不能说O(f)= x ^ 2

相反,人们说:f = O(g)这意味着存在常数k和C,使得:f< k * g + C

因此,以下陈述适用于您的f:

  • f = O(x ^ 2)
  • f = O(x ^ 2 + log(x))
  • f = O(x ^ 3)
  • f = O(x ^ 145321)

欧米茄以同样的方式运作,但不平等逆转了: f = Omega(g),这意味着存在常数k和C,使得:f> k * g + C

因此,以下陈述适用于您的f:

  • f = Omega(log(x))
  • f = Omega(x ^ 2 + log(x))
  • f = Omega(1)
  • f = Omega(x)

希望这会有所帮助。有关详细信息,请参阅Wikipedia

答案 2 :(得分:2)

很多人认为 O 表示“最坏情况”而 Omega 表示“最佳情况”,但 不正确。语句 f(x)= O(g(x))松散地表示“ f(x)的增长速度不会快于 cg(x)(对于某些常量 c ),而 f(x)= Omega(g(x))松散地表示“ f(x)不要慢于 cg(x)“。请注意,在这些语句的两个中,它是”最大“的术语(在这种情况下, 2x ^ 2 ),你应该看一下,所以 f(x)都是 O(x ^ 2) Omega(x ^ 2)< / em>(它也是 O(x ^ 3) O(2 ^ x) Omega(x) Omega(1)等等。最值得注意的是, O和Omega都是关于函数f(x)的陈述。它们是关心函数描述的内容,并且没有关于最佳或最坏情况的概念。相反,习惯使用 O 来描述函数时函数表示最坏的情况,并且当函数表示最佳情况时使用 Omega 。原因是如果我们有 O 绑定一个表示算法最坏情况的函数,然后相同的 O 绑定适用于算法在所有情况下的运行时间(因为它永远不会使用更多时间在最坏的情况下,并且类似地,在最佳情况下绑定的 Omega 在所有情况下都适用于算法的运行时间。

答案 3 :(得分:0)

从实际角度来看,还有一个非常重要的符号。大Theta符号。这个想法和大O和大欧米茄一样,但功能从上到下都有限。