Big-Omega 表示法

Ω-表示法用于渐近下界。

正式定义

f(n)g(n) 是在正实数集上定义的两个函数。如果有正常数 cn0,我们写 f(n) = Ω(g(n)),这样:

0 ≤ c g(n)f(n) for all n ≥ n0

笔记

f(n) = Ω(g(n)) 意味着 f(n) 渐渐渐渐渐渐变慢而不是 g(n)。当算法分析不足以说明Θ(g(n)) 或/和 O(g(n)) 时,我们也可以说Ω(g(n))

从符号的定义遵循定理:

对于两个任何函数 f(n)g(n) 我们有 f(n) = Ө(g(n)) 当且仅当 f(n) = O(g(n)) and f(n) = Ω(g(n))

图形Ω表示法可表示如下:

StackOverflow 文档

例如,让我们有 f(n) = 3n^2 + 5n - 4。然后 f(n) = Ω(n^2)。它也是正确的 f(n) = Ω(n),甚至是 f(n) = Ω(1)

另一个解决完美匹配算法的例子:如果顶点数是奇数,则输出 No Perfect Matching,否则尝试所有可能的匹配。

我们想说算法需要指数时间,但事实上你不能使用Ω的通常定义来证明Ω(n^2) 的下限,因为算法在 n 个奇数的线性时间内运行。我们应该通过说一些不变的 c>0f(n)≥ c g(n) 来定义 f(n)=Ω(g(n))。这给出了上下界之间的良好对应关系:f(n)=Ω(g(n)) iff f(n) != o(g(n))

参考

正式定义和定理取自“Thomas H. Cormen,Charles E. Leiserson,Ronald L. Rivest,Clifford Stein .The Introduction to Algorithms”一书。