算法導論-3函數增長率

目錄

1. 漸進記號Θ、Ο、o、Ω、ω的定義及其使用

1)漸近緊確界記號:Ɵ(big-theta):

2)漸近上界記號:O(big-oh)

3)漸近下界記號:Ω(big-omega)

4)非漸近緊確上界:o(小-oh)

5)非漸近緊確下界:ω(小-omege)

2. 漸近記號Θ、Ο、o、Ω、ω關係

3. 和式界的證明方法



1. 漸進記號Θ、Ο、o、Ω、ω的定義及其使用

1)漸近緊確界記號:Ɵ(big-theta):

由下圖中左側f(n)=Θ(g(n))圖可以看出,對所有n>n0時,函數f(n)乘一個常量因子可等於g(n),我們稱g(n)是f(n)的一個漸近緊確界 。Θ記號在五個記號中,要求是最嚴格的,因爲g(n)即可以表示上界也可以表示下界。

需要注意的是:Θ(g(n))的定義要求每個成員f(n)∈Θ(g(n))均漸近非負,即當n足夠大時,f(n)非負。漸近正函數就是對所有足夠大的n均爲正的函數。

 

2)漸近上界記號:O(big-oh)

定義:設f(n)和g(n)是定義域爲自然數集N上的函數。若存在正數cn0,使得對一切nn0都有0f(n)cg(n)成立,則稱f(n)的漸進的上界是g(n),記作f(n)=O(g(n))。通俗的說n滿足一定條件範圍內,函數f(n)的階不高於函數g(n)。

根據符號O的定義,用它評估算法的複雜度得到的只是問題規模充分大時的一個上界。這個上界的階越低,評估越精確,越有價值。

幾種常見的複雜度關係

O(1)<O(log(n))<O(n)<O(nlogn)<O(n^{2})<O(2^{n})<O(n!)<O(n^{n}) 

需要注意的是:對數函數在沒有底數時,默認底數爲2;如lgn=logn=log2n 因爲計算機中很多程序是用二分法實現的。

符號用法測試:素數測試

int isprime(int n) {

    for(int i=2; i<=(int)sqrt(n); i++) {

        if(n%i==0) {

            return0;

        }

    }

    return1;

}

在上面這個素數測試的例子中,基本運算是整除;時間複雜度T(n)=O(n^{1/2})是正確的。當被測的數n爲偶數時,基本運算一次也沒執行,所以T(n)= \Theta (n^{1/2})是錯誤的,因爲沒有辦法證明T(n)的下界是\Omega (n^{1/2})

3)漸近下界記號:Ω(big-omega)

定義:設f(n)和g(n)是定義域爲自然數集N上的函數。若存在正數c和n0,使得對一切n≥n0都有0≤cg(n)≤f(n)成立,則稱f(n)的漸進的下界是g(n),記作f(n)=Ω(g(n))。通俗的說n滿足一定條件範圍內,函數f(n) 的階不低於函數g(n)。

根據符號Ω的定義,用它評估算法的複雜度得到的只是問題規模充分大時的一個下界。這個下界的階越高,評估越精確,越有價值。

顯然,Ω(n2) 作爲下界更爲精確。

4)非漸近緊確上界:o(小-oh)

定義1:設f(n)和g(n)是定義域爲自然數集N上的函數。若對於任意正數c,都存在n0,使得對一切n≥n0都有0≤f(n)由O記號提供的漸近上界可能是漸近緊確的,也可能是非緊確的。(如:2n^{2}=O(n^{2})是漸近緊確的,而2n=O(n^{2})是非緊確上界。)

例子:f(n)=n^{2}+n則f(n)=o(n^{3})

5)非漸近緊確下界:ω(小-omege)

定義1:設f(n)和g(n)是定義域爲自然數集N上的函數。若對於任意正數c,都存在n0,使得對一切n≥n0都有0≤cg(n)

ω記號與Ω的關係類似於o和O記號的關係。我們用ω表示一個非漸近緊確的下界。

例子:f(n)=n^{2}+n,則f(n)=ω(n)是正確的。f(n)=ω(n^{2})則是錯誤的,f(n)=Ω(n^{2})是正確的。

2. 漸近記號Θ、Ο、o、Ω、ω關係

給出這些記號的定義:

對於定義的注意點:

(1)這些定義的前提是f(n)和g(n)是漸近非負的,漸近非負的意思是“當n趨於無窮大時,f(n)和g(n)都非負”。

(2)對於第4和第5條定義,需要注意是對於任意的c。

用集合論來表示這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))。

(4)如果f(n)=O(g(n)),則要麼是f(n)= o (g(n)),要麼是f(n)=Θ(g(n))。

(5)如果 f(n)=Ω(g(n)) ,則要麼是f(n)=ω(g(n)),要麼是f(n)=Θ(g(n))。

 

記號  含義   通俗理解

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

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

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

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

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

3. 和式界的證明方法

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