Algorithm 大Ө;符号代表什么?
我真的很困惑大O、大ω和大θ符号之间的区别 我知道大O是上界,大ω是下界,但大θ(θ)到底代表什么Algorithm 大Ө;符号代表什么?,algorithm,computer-science,big-o,notation,big-theta,Algorithm,Computer Science,Big O,Notation,Big Theta,我真的很困惑大O、大ω和大θ符号之间的区别 我知道大O是上界,大ω是下界,但大θ(θ)到底代表什么 我读过,它的意思是紧约束,但这意味着什么?它意味着算法在给定的函数中是大O和大Omega 例如,如果它是ㄈ(n),那么就有一些常数k,这样你的函数(运行时,无论什么),对于足够大的n,大于n*k,对于足够大的n,还有一些其他常数k,这样你的函数小于n*k 换句话说,对于足够大的n,它夹在两个线性函数之间: 对于足够大的k
我读过,它的意思是紧约束,但这意味着什么?它意味着算法在给定的函数中是大O和大Omega 例如,如果它是
ㄈ(n)
,那么就有一些常数k
,这样你的函数(运行时,无论什么),对于足够大的n
,大于n*k
,对于足够大的n
,还有一些其他常数k
,这样你的函数小于n*k
换句话说,对于足够大的n
,它夹在两个线性函数之间:
对于足够大的
k
和n
,n*k
首先让我们了解什么是大O,大θ和大ω。它们都是函数
大O表示上限,而大Omega表示下限。大θ给出了两者
一切ㄉ(f(n))
也是O(f(n))
,但不是相反。
T(n)
如果同时在O(f(n))
和Omega(f(n))
中,则称为在ㄊ(f(n))
在sets术语中,
ㄉ(f(n))
是O(f(n))
和Omega(f(n))
例如,合并排序最坏的情况是O(n*log(n))
和Omega(n*log(n))
,因此也是ㄊ(n*log(n))
,但它也是O(n^2)
,因为n^2
渐进地“大于”它。然而,它不是}(n^2)
,因为算法不是ω(n^2)
更深入的数学解释
O(n)
是渐近上界。如果T(n)
是O(f(n))
,这意味着从某个n0
,存在一个常数C
,使得T(n)=C2*f(n))
)
不要混淆!
不要与最差、最佳和平均情况分析混淆:所有三种(ω、O、θ)符号均与算法的最佳、最差和平均情况分析无关。其中的每一项都可以应用于每一项分析
我们通常使用它来分析算法的复杂性(如上面的合并排序示例)。当我们说“算法A是O(f(n))
”时,我们真正的意思是“在最糟糕的案例分析中,算法的复杂性是O(f(n))
”——这意味着它可以“类似”(或者形式上,不比函数f(n)
更差)
为什么我们关心算法的渐近界?
原因有很多,但我认为最重要的是:
f(n)=2*n
比f(n)=n
更“糟糕”。但是,与其他函数的差别并没有那么大。我们可以看到,与其他函数相比,f(n)=logn
迅速降低,而f(n)=n^2
则迅速升高。
因此,由于上述原因,我们“忽略”了常量因子(在图形示例中为2*),而只采用大O表示法 在上面的例子中,
f(n)=n,f(n)=2*n
既在O(n)
中,又在Omega(n)
中,因此也在Theta(n)
中。
另一方面-
f(n)=logn
将位于O(n)
(它比f(n)=n
更好),但不会位于Omega(n)
,因此也不会位于Theta(n)
。
对称地,
f(n)=n^2
将位于Omega(n)
,但不在O(n)
,因此-也不是Theta(n)
1通常,但并非总是如此。当分析类(最差、平均和最佳)缺失时,我们实际上指的是最坏的情况。Theta(n):如果存在正常数
c1
和c2
,则f(n)
函数属于Theta(g(n))
,从而f(n)
可以夹在c1(g(n)之间
和c2(g(n))
。i、 它给出了上限和下限
θ(g(n))={f(n):存在正常数c1、c2和n1,使得
0大θ表示法:
没什么可搞砸的,伙计
如果我们有一个正值函数f(n)并且g(n)取一个正值参数n,那么ϴ(g(n))定义为{f(n):对于所有n>=n1},存在常数c1、c2和n1
式中,c1g(n)我希望这是您可能希望在经典(第66页)中找到的内容:
首先是理论
if Upper Bound is Similar to Lower Bound, The Average Case is Similar
Example, 2n4 ≤ f(x) ≤ 2n4,
Then Omega(n) = 2n4
in this case, Omega(n) is Not fixed but Omega(n) is the set of functions with the same order of growth as g(n).
Example 2n4 ≤ f(x) ≤ 3n4, This is Our Default Case,
Then, Omega(n) = c'n4, is a set of functions with 2 ≤ c' ≤ 3