漸進最優性

作用:

漸進最優是用以評價算法的效率

定義:

如果已經證實一個問題需要使用Ω(f(n))的資源來解決,而某個算法用O(f(n))的資源來解決這個問題,則該算法就是漸進最優的。

解釋:

(1) O符號表示函數在增長到一定程度時總小於一個特定函數的常數倍,大Ω符號則表示總大於。

(2) 用數學語言描述即是:

f(ν)=Ω[g(ν)]{\displaystyle f(\nu )=\Omega [g(\nu )]}的含義爲:

若存在x1,κ{\displaystyle x_{1},\kappa } 使得:對於所有x>x1,f(x)>κg(x){\displaystyle \forall x>x_{1},f(x)>\kappa g(x)}.

(3) 大Ω符號與大O符號正好相反,即:

{f(ν)=O[g(ν)]g(ν)=Ω[f(ν)]{\displaystyle {\begin{cases}f(\nu )=\mathrm {O} [g(\nu )]\\g(\nu )=\Omega [f(\nu )]\end{cases}}}

漸進最優的例子包括數據結構動態數組[1],能夠在常數時間內索引,但性能在多數機器上不如普通數組的索引。另外,在所有基於比較的排序算法中,歸併排序和堆排序是漸進最優的,說到漸進這些算法是依賴於n的,並且忽略常數因子,這些算法隨n的遞增趨於最優。所以在基於比較的排序算法中,它們都是漸進最優的,它們只比較較少的次數,它們的運行時間主要受比較次數的影響,都是O(nlgn)。

參考文獻:

[1] 維基百科-漸進最優
[2] 維基百科-Ω符號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章