有谁知道如何进行这样的计算 例如:
O(n^2) + THETA(n) + OMEGA(n^3) = ?
或
O(n^2) * THETA(n) * OMEGA(n^3) = ?
一般来说,如何添加和乘法不同的渐近符号?
答案 0 :(得分:5)
O
提供 上限 ;
Ω
提供 下限 ;
Θ
提供 渐近约束 ;
Wikipedia有一个很好的图表来解释这些。
因此,这些确实无法比较。
对于你的第一个案例,
O(n^2) + Θ(n) + Ω(n^3)
让我们先解决O
。第一个词告诉我们O(n^2)
,第二个词告诉我们O(n)
。基于这两个,我们知道到目前为止我们有O(n^2)
的上限。然而,第三个术语没有告诉我们关于上限的任何内容!所以我们真的无法总结O
。
这里的要点是O
和Θ
仅为您提供有关O
的信息,而Ω
和Θ
会为您提供有关Ω
的信息} 只要。这是因为Θ(g(n))
同时意味着O(g(n))
和Ω(g(n))
,因此我们可以将Θ
更改为适合给定的O
和Ω
中的任何一个分析
但是,这三个一起,甚至只是O
和Ω
,让你一无所知,因为O
和Ω
都没有暗示另一个。
答案 1 :(得分:4)
你做不到。假设您知道a > 0
和b < 10
。那么您没有关于a+b
的信息。它可以是任何东西。
Big-O和Big-Omega的行为类似。
答案 2 :(得分:1)
虽然我的上述答案对于一般函数和界限是正确的,但在计算机科学中我们通常只考虑正函数。因此,在您的第一个示例中,我们有:
O(n^2) + Theta(n) + Omega(n^3) = Omega(1)+Theta(n)+Omega(n^3) = Omega(n^3)
这源于假设功能都是积极的。也就是说,所有函数都是Omega(1)
。