大O,theta和omega符号

时间:2014-08-14 07:12:44

标签: performance big-o time-complexity asymptotic-complexity

我真的很困惑大O,大theta和大欧米茄代表什么:最好的情况,最坏情况和平均情况或上限和下限。

如果答案是上界和下界,那么其上界和下界?例如,让我们考虑一个算法。那么对于最佳情况,小写和平均情况,它有三种不同的表达或增长率,并且对于每种情况我们都能找到它的大O,theta和omega。

最后,我们知道通过分而治之算法的合并排序有n * log(n)的增长率或时间复杂度,那么它是最佳情况或最坏情况的增长率以及我们如何关联大O ,theta和omega到此。请你能用一个假设的表达来解释。

3 个答案:

答案 0 :(得分:2)

这些符号都是关于渐近增长的。如果他们解释最坏的情况或平均情况仅取决于你说它应该表达的内容。

E.g。 quicksort是一种随机排序算法。让我们说我们使用确定性,并始终选择列表中的第一个元素作为枢轴。然后存在长度为n的输入(对于所有n),使得最差情况为O(n²)。但在随机列表中,平均情况为O(n log n)

所以在这里我使用了大O来表示平均和最差情况。

基本上这种表示法是为了简化。如果你有一个完全执行5n³-4n²-3logn步骤的算法,你可以简单地写O(n³)并摆脱之后的所有废话,也忘掉常数。

你可以使用大O来除掉所有单项式,除了具有最大指数和所有常数因子的那些(常数意味着它们不会增长,但10 100 也是常数)< / p>

最后,您使用O(f(n))一组函数,这些函数都具有上限f(n)(这意味着g(n)位于O(f(n)),如果您能找到常数c,使g(n) ≤ c⋅f(n)

使它更容易:
我已经解释过,大O意味着上限但不严格。因此位于O(n³),但也位于。 因此,您可以将大O视为“较低的平等”。

与其他人一样。

小o是严格下限:位于o(n³),但不是。{ Big Omega是“更大的平等”:位于Ω(n³)n⁴
小欧米茄是一个严格的“更大”:不在ω(n³)n⁴是。 而大Theta就像“相等”,所以n³在Θ(n³)中,但n⁴都不是。

我希望这会有所帮助。

答案 1 :(得分:1)

所以我的想法是O意味着“平均”,一个意味着最好的情况,一个意味着最坏的情况。例如,让我们想一下大多数排序算法。如果物品已经有序,他们中的大多数都会排序。你只需检查它们是否有序。所有这些都是最糟糕的情况下,他们必须做大部分工作来订购一切。

答案 2 :(得分:0)

假设f,g为渐近非负函数。

简而言之,

1)Big_O表示法

  如果渐近,对于某些常数c,f(n)= O(g(n)),则f(n)≤c·g(n)。

2)Theta表示法

  

f(n)=Θ(g(n)),如果渐近地,c1·g(n)≤f(n)≤c2·g(n),

对于某些常数c1,c2;也就是说,直到恒定因子f(n) 和g(n)渐近相似。

3)欧米茄符号

  

f(n)=Ω(g(n)),对于某些常数,如果渐近,f(n)≥c·g(n)   C。

(非正式地,渐近地并且直到恒定因子,f至少是g)。

4)小o符号

  如果limn→∞f(n)/ g(n),则f(n)= o(g(n))   = 0。

也就是说,对于每个c> 0,渐近地,f(n)

对于问题的最后一部分,合并排序为Θ(nlog(n)),对于某些常数c1,c2,最坏情况和最佳情况都渐近地收敛到c1 * nlog(n)+ c2。