算法分析之常用符號大O、小o、大Ω符號、大Θ符號、w符號

大O符號(英語:Big O notation),又稱爲漸進符號,是用於描述函數漸近行爲的數學符號。更確切地說,它是用另一個(通常更簡單的)函數來描述一個函數數量級的漸近上界。在數學中,它一般用來刻畫被截斷的無窮級數尤其是漸近級數的剩餘項;在計算機科學中,它在分析算法複雜性的方面非常有用。
1、O(1) 爲常數級的時間複雜度,算法是十分好。
2、O(log n) 爲對數級的時間複雜度,算法也不錯。
3、O(n) 爲線性級的時間複雜度,算法也還行。
4、O(nlog n)線性對數級的時間複雜度,算法也還可以。
5、O(n^2) 二次方級的時間複雜度,算法有點差。
6、O(n^3)三次方級的時間複雜度,算法差。
7、O(2^n) 指數級的時間複雜度,算法很差。
8、O(n!)階乘級的時間複雜度,算法極差。
大O準確來說, 使用另一個函數來描述一個函數數量級的**漸進上界
小o呢則表示一個函數漸進地小於另一個函數,沒有等於。
大Ω符號的定義與大O符號的定義類似,但主要區別是,大O符號表示函數在增長到一定程度時總小於一個特定函數的常數倍,大Ω符號則表示總大於。大Ω符號主要是用來描述一個函數數量級的
漸進下界**。
大Θ符號是大O符號和大Ω符號的結合。即: {!若 {\displaystyle {\begin{cases}f(\nu )=\mathrm {O} [g(\nu )]\f(\nu )=\Omega [g(\nu )]\end{cases}}} {\begin{cases}f(\nu )=\mathrm{O} [g(\nu )]\f(\nu )=\Omega [g(\nu )]\end{cases}}。
這一符號首先由高德納於1970年提出[1]。
Θ符號既是上界也是下界相當於兩者的結合,等於的意思。
w符號表示下界,大於的意思。
函數f ( n )代表某一算法在輸入大小爲n的情況下的工作量(效率),則在n趨向很大的時候,我們將f (n)與另一行爲已知的函數g(n)進行比較:

1、如果0,則稱f (n)在數量級上嚴格小於g(n),記爲f (n)=o( g(n))。
2、如果,則稱f (n)在數量級上嚴格大於g(n),記爲f (n)=w( g(n))。
3、如果c,這裏c爲非0常數,則稱f (n)在數量級上等於g(n),即f (n)和g(n)是同一個數量級的函數,記爲:f (n)=Θ( g(n))。
4、如果f (n)在數量級上小於或等於g(n),則記爲f (n)=O( g(n))。
5、如果f(n)在數量級上大於或等於g(n),則記爲f (n)=Ω( g(n))。
大O大Ω都是存在c,小o小w都是對於任意c
總結
Θ等於的意思。
Ο表示上界,小於等於的意思。
ο表示上界,小於的意思。
Ω表示下界,大於等於的意思。
ω表示下界,大於的意思。

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