当大O或欧米茄或theta可以成为一组的元素?

时间:2013-08-21 10:05:03

标签: algorithm sorting performance

我正在试图弄清楚算法的效率,我有点困惑。 只需要一些专家的想法来证明我的答案是正确的,或者引用我的某个地方来解释这是一个不在渐近主体中的元素。 (有许多资源,但我找不到关于集合元素的内容)

当我们说O(n ^ 2)是两个循环时,说:

  

n ^ 2是O(n ^ 3)

的元素

据我所知,大O是最糟糕的情况,欧米茄是最有效的案例。如果我们把它们放在图表上,那么n ^ 2的所有情况都是O(n ^ 3)的一部分,所以第一个不正确吗?

  

n ^ 3是欧米茄(n ^ 2)

的元素

关于第二个,它是不对的。因为omega(n ^ 2)的一些最好的情况并非在所有n ^ 3的情况下!

最后是

  

2 ^(n + 1)元素theta(2 ^ n)

我不知道如何衡量它!

2 个答案:

答案 0 :(得分:4)

在这种情况下,大O,欧米茄,theta都是复杂的。正是这些复杂性的功能形成了你正在思考的集合。

实际上,具有复杂度O(n * n)的函数集是具有复杂度O(n * n * n)的函数的子集。简单地说,这是因为O(n * n * n)意味着复杂度小于c * n * n * n,因为n变为无穷大,对于某些常数c。如果一个函数的实际复杂度为3 * n * n + 7 * n,那么对于任何 c,其n为无穷大的复杂度明显小于c * n * n * n。

因此,O(n * n * n)不仅仅是“三个循环”,而是“三个循环或更少”。

Ω是相反的。它是复杂性的下限,而c * n * n是n * n * n的平凡下界,因为n变为无穷大。

具有复杂度Θ(n * n)的函数集是具有复杂度O(n * n)和Ω(n * n)的函数的交集。例如。 3 * n没有复杂度Θ(n * n),因为它没有复杂度Ω(n * n),而7 * n * n * n没有复杂度Θ(n * n),因为它没有没有复杂度O(n * n)。

答案 1 :(得分:2)

我将逐一列出答案。

1。)n ^ 2是O(n ^ 3)的元素 真
要了解有关Big-Oh的更多信息,请阅读here

2。)n ^ 3是ω(n ^ 2)的元素 真
要理解欧米茄符号,请阅读here

3。)θ(2 ^ n)的2 ^(n + 1)个元素

到现在为止,你会知道为什么这是正确的。(提示:常数因素)

请询问您是否还有其他问题。