漸進分析——大O、成長率與成本模型

小omega符號

/ little oh-MAY-guh /

小omega是小o的鏡像,正如大Omega是大O的鏡像。若小o意為「最終可忽略」,小omega意為「最終主導」:f(n) = omega(g(n)) 說的是 f 無上限地超越 g,使得隨著 n 增大,f 變成 g 的任意多倍。

形式上,若對「每一個」正常數 c 都存在門檻 n0,使得對所有 n >= n0 都有 f(n) > c 乘 g(n),則稱 f(n) 為 omega(g(n))——與小o相同的「對每個 c」量詞,只是不等式方向相反。當極限存在時,乾淨的判準是:f(n) 是 omega(g(n)) 恰好等於 f(n)/g(n) 在 n 趨於無窮時為無窮大(比值爆掉)。例如 n^2 是 omega(n),因為 n^2/n = n 趨於無窮;而 n 是 omega(log n),因為 n/(log n) 趨於無窮。注意完美的對偶:f 是 omega(g) 若且唯若 g 是 o(f)。

當你想說一個成長嚴格主導另一個、語氣比 Omega 所允許的更強時,就用小omega。Omega(g) 容許 f 與 g 成長同速(在常數倍內);omega(g) 禁止這點——f 必須嚴格拉開。這是「嚴格更快成長」的語言,在分離複雜度類、或陳述一個演算法在漸進上比另一個更差(而不只是不更好)時很有用。

n^2 是 n log n 的小omega嗎?算 n^2 / (n log n) = n / log n,當 n 變大時趨於無窮(n 超越 log n)。是的,n^2 = omega(n log n):一個 n^2 演算法在漸進上嚴格差於一個 n log n 演算法。由對偶性,這等同於說 n log n = o(n^2)。

小omega是「比值趨於無窮」的判準,是小o的嚴格對偶。

omega(g) 嚴格強於 Omega(g):它禁止同速成長。四種記號配對為 O/o(上界)與 Omega/omega(下界),小寫版是嚴格的那一邊。

又称
omega (little) notationstrictly larger order嚴格較大階