在这个答案的参考下,什么是Theta(紧束缚)?
Omega是下限,很明白,算法可能需要的最短时间.我们知道Big-O代表上限,意味着算法可能需要的最长时间.但我不知道Theta.
大O是上限,而欧米茄是下限.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).
Θ-符号(theta符号)称为紧束缚,因为它比O符号和Ω符号(ω符号)更精确.
如果我很懒,我可以说在排序数组上的二进制搜索是O(n 2),O(n 3)和O(2 n),在每种情况下我都是技术上正确的.这是因为O符号只指定了一个上限,而二进制搜索在所有这些函数的高端都是有限的,只是不是非常接近.这些懒惰的估计将毫无用处.
Θ-表示法通过组合 O符号和Ω 符号来解决这个问题.如果我说二进制搜索是Θ(log n),那么可以为您提供更精确的信息.它会告诉你,该算法是上界都面由给定的功能,所以它决不会比陈述显著更快或更慢.
如果你有一个 O(f(n))的东西意味着有k,g(n)使得f(n) ≤kg (n).
如果你有 Ω(f(n))的东西意味着有k,g(n)使得f(n) ≥kg (n).
如果你有一个O(f(n)) 和 Ω(f(n))的东西,那么它是Θ(f(n).
在维基百科的文章是体面的,如果有点密集.
渐近上限意味着给定算法在最大时间内执行,具体取决于输入的数量.
我们以排序算法为例.如果数组的所有元素都按降序排列,那么为了对它们进行排序,它将需要一个运行时间O(n)
,显示上限复杂性.如果数组已经排序,则值为O(1)
.
通常,O-notation
用于上限复杂度.
渐近紧绑定(C 1 G(N)≤F(N)≤Ç 2 G(N))表示的函数的平均复杂度界限,具有结合的极限之间的值(上限和下限),其中c 1和c 2是常数.