下界和紧界之间的区别?

时间:2009-01-21 04:21:41

标签: big-o big-theta

参考这个answer,什么是Theta(紧束缚)?

Omega是下限,很明白,算法可能需要的最短时间。我们知道Big-O代表上限,意味着算法可能需要的最长时间。但我不知道Theta。

8 个答案:

答案 0 :(得分:144)

Big O 是上限,而 Omega 是下限。 Theta 需要Big O和Omega,所以这就是为什么它被称为紧束缚(它必须是上限和下限)。

例如,采用Omega(n log n)的算法至少需要n log n次,但没有上限。采用Theta(n log n)的算法是优先考虑的,因为至少 n log n(Omega n log n)和不超过 n log n (Big O n log n)。

答案 1 :(得分:106)

Θ-notation (theta notation)被称为紧束缚,因为它比 O-notation Ω-notation (omega)更精确符号)。

如果我很懒,我可以说在排序数组上的二进制搜索是O(n 2 ),O(n 3 )和O(2 < sup> n ),在每种情况下,我在技术上都是正确的。那是因为O符号只指定上限,并且二进制搜索在所有这些函数的高位上都是有限的,只是不是非常接近。这些懒惰的估计将是无用的

Θ-notation通过组合 O符号和Ω符号解决了这个问题。如果我说二进制搜索是Θ(log n),那么可以为您提供更精确的信息。它告诉你算法在给定函数的两个边界上,所以它永远不会比声明的更快或更慢。

答案 2 :(得分:15)

如果您的某些内容是 O(f(n)),则意味着 k g(n)这样 > f(n) kg(n)

如果你有Ω(f(n))的东西,那就意味着 k g(n)这样 > f(n) kg(n)

如果你有 O(f(n)) Ω(f(n))的东西,那么它是< EM>Θ(F(N)

如果有点密集,Wikipedia article是不错的。

答案 3 :(得分:5)

渐近上限表示给定算法在最长时间内执行,具体取决于输入的数量。

我们以排序算法为例。如果数组的所有元素都按降序排列,那么要对它们进行排序,它将需要O(n)的运行时间,显示上限复杂度。如果数组已经排序,则值为O(1)

通常,O-notation用于上限复杂度。


渐近紧束缚(c 1 g(n)≤f(n)≤c 2 g(n))显示平均值函数的约束复杂度,具有绑定限制(上限和下限)之间的值,其中c 1 和c 2 是常量。

答案 4 :(得分:3)

短语最短时间最长时间在这里有点误导。当我们谈论大O符号时,并不是我们感兴趣的实际时间,而是当我们的输入大小变大时,时间会增加。它通常是我们谈论的平均或最坏情况时间,而不是最佳情况,这通常对解决我们的问题毫无意义。

在另一个问题的接受答案中使用数组搜索作为示例。在大小为n的列表中查找特定数字所花费的时间平均为n / 2 * some_constant。如果你将它视为一个函数f(n) = n/2*some_constant,它的增长速度不会超过g(n) = n,就像查理所给出的那样。此外,它也不会慢于g(n)。因此,g(n)实际上是Big-O表示法中f(n)的上限和下限,因此线性搜索的复杂性正好 n ,意思是它是Theta(n)。

在这方面,对另一个问题的接受答案中的解释并不完全正确,它声称O(n)是上限,因为算法可以在一些输入的恒定时间内运行(这是最好的情况我上面提到过,这不是我们想知道的关于运行时间的事情)。

答案 5 :(得分:0)

  

如果我很懒,我可以说在排序数组上的二进制搜索是   O(n2),O(n3)和O(2n),我在技术上都是正确的   情况下。

我们可以使用o符号(“little-oh”)来表示不渐近紧的上界。大哦和小哦都很相似。但是,大哦很可能用来定义渐近紧的上界。

答案 6 :(得分:0)

恰好是下界或$ \ omega $ bfon f(n)表示渐近小于或等于f(n)的函数集,即U      g(n)≤cf(n)$ \对于所有$`un≥n' 对于某些c,n'$ \ in $ $ \ Bbb {N} $

f(n)的上限或$ \ mathit {O} $表示渐近大于或等于数学上表明的f(n)的函数集,

$ g(n)\ ge cf(n)\对于所有n \ ge n'$,对于某些c,n'$ \ in $ $ \ Bbb {N} $。

现在$ \ Theta $是上面写的两个的交点

  

$\theta $

就像算法就像“恰好$ \ Omega \ left(f(n)\ right $“)一样,最好说它是$ \ Theta \ left(f(n)\ right)$。

或者,我们也可以说$ \omega $给了我们最低速度的实际速度。

答案 7 :(得分:-2)

之间的基本区别
  

块引用

渐近上界和渐近紧 Asym.upperbound意味着一个给定的算法,它可以根据输入的数量以最大的时间量执行,例如在排序算法中,如果所有的数组(n)元素都按降序排列,那么升序它们将需要一个运行时间O(n)显示了上限复杂度,但是如果它们已经排序则需要欧姆(1)。因此我们通常使用“O”符号表示上限复杂度。

ASYM。紧束缚显示for例如(c1g(n)&lt; = f(n)&lt; = c2g(n))显示紧束缚限制,使得函数具有两个界限(上界和下界)之间的值,给出了平均情况。