演算法分析漸進符號(O、o、Θ、Ω、ω)總結__演算法

來源:互聯網
上載者:User

用“漸近記號”來表示“漸近複雜度”。

1.  漸近記號包括:

(1)Θ(西塔):緊確界。            相當於"="

(2)O (大歐):上界。              相當於"<="

(3)o(小歐):非緊的上界。       相當於"<"

(4)Ω(大歐米伽):下界。          相當於">="

(5)ω(小歐米伽):非緊的下界。 相當於">"

給出這些記號的定義:

註解:漸近非負的意思是“當n趨於無窮大時,f(n)和g(n)都非負”。

2.  用集合論來表示這5個符號的關係:

從上面的圖可以看出:

(1)如果f(n)=Θ(g(n)),則f(n)=O(g(n))且f(n)=Ω(g(n))。

(2)如果f(n)= o (g(n)),則f(n)=O(g(n))。

(3)如果f(n)=ω(g(n)),則f(n)=Ω(g(n))。

因此對於這些漸近記號的使用最準確應該是“f(n)∈ O (g(n))”,但是一般都是寫成“f(n)=O(g(n))”。

給出一些例子:

O(n^2)可以是n,2n,1,2n^2等。

Θ(n^2)可以是n^2,3n^2等。

ω(n^2)可以是n^3,n^10等,但不能是n^2。

Ω(n^2)可以是n^2,n^3,n^10等。

o(n^2)可以是n,1,3n等,但不能是n^2。

3.  判斷兩個函數的漸近關係

我們這裡給出了很通用的方法,叫做“極限法”。

看到上面的方法,很多人會問“怎麼沒有 O 和Ω。”,原因很簡單,因為如果f(n)=O(g(n)),則要麼是f(n)= o (g(n)),要麼是f(n)=Θ(g(n))。

4.  相關法則

5.  常用的函數階

下面是在分析演算法的時候常見的函數分類列表。所有這些函數都處於趨近於無窮大的情況下,增長得慢的函數列在上面。是一個任意常數。

符號

名稱

常數(階,下同)

對數

多對數

線性,次線性

為迭代對數

線性對數,或對數線性、擬線性、超線性

平方

多項式,有時叫作“代數”(階)

指數,有時叫作“幾何”(階)

階乘,有時叫做“組合”(階)

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.