什么是渐近紧的上限?


15

据我了解,渐近紧边界表示它是按theta表示法从上至下绑定的。但是,渐近严格的上限对Big-O表示法意味着什么?


这也使我困惑。为什么作者不能说“ theta”?为什么要发明不必要的条款?
beroal

Answers:


21

说大O边界是“渐近严格的”,这基本上意味着作者应该写出。例如,O x 2表示对于所有足够大的  x,它不超过某个恒定时间  x 2;“渐近紧密”表示对于足够大的x,它实际上是某个恒定时间  x 2,  而不是某个恒定时间  x 1.999Θ()O(x2)x2xx2xx1.999


13

这是一个解释它的示例(以及大卫的正确答案的一个具体示例)。

假设您有一个算法,该算法的输入为整数的数组。该算法会扫描整个数组,并在每次看到元素为偶数整数时递增初始设置为零的计数器。我们可以证明算法在O n 3时间内运行,其中nA中元素的数量。但是我们也可以给出一个更严格的界限,说它在时间O n )内运行。这个界限在渐近上是紧密的:实际上,由于读取输入已经花费了Ω n 时间,因此我们可以更精确地说算法需要AO(n3)nAO(n)Ω(n)时间。Θ(n)


3
+1,但我认为您选择的示例有一个危险,那就是它可能会被误解为声称上限渐近严格,而事实并非如此,那就必须是不可能有更快的算法来解决此问题。(我之所以这样说,是因为每当我看到“您至少需要时间来读取输入”观察结果时,就会用它来证明这样的“不可能存在更快的算法”主张。)Ω(n)
j_random_hacker

1
@j_random_hacker是的,我们应该对此小心。重申一下,当然,渐近严格的界限并没有说明总体上拥有更快算法的可能性。
Juho
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.