算法分析——算法的漸進效率分析


一、大O表示法

      一般用於界定函數集合的上界,漸進表達式O(g(n))的含義就是,c為正常數,函數集合O中的元素的最大值不會超過c.g(n)。f(n) = O(g(n))的含義是,函數f(n)的屬於集合O(g(n)),因為函數集合O中的最大值為c.g(n),所以f(n)的最大值為c.g(n)。由於只是漸進的上界,所以當函數g(n)的階數越小時,上界越緊確。

      下面來看下 算法導論 中是如何描述大O表示法的。

      當函數的大小只有上界,沒有明確下界的時候,則可以使用大O表示法。f(n)= O(g(n))正式的數學定義:存在正常數c、n、n0,當n>n0的時,對於任意的f(n)對符合0<= f(n)<= c.g(n)。
————————————————

直觀視覺圖如下示:

                    

 

二、大Ω表示法

      一般用於界定函數集合的下界,漸進表達式Ω(g(n))的含義就是,函數集合Ω中的元素的最小值不會低於c.g(n)。f(n) = Ω(g(n))的含義是,函數f(n)的屬於集合Ω(g(n)),因為函數集合Ω中的最小值為c.g(n),所以f(n)的最小值為c.g(n)。

     算法導論 中是如何描述大Ω表示法的。     

     當函數的大小只有下界,沒有明確的上界的時候,可以使用大Ω表示法。f(n)= Ω(g(n))正式的數學定義:存在正常數c、n、n0,當n>n0的時,對於任意的f(n)對符合0<= c.g(n)<= f(n)。

     直觀視覺圖如下所示:

 

 

 

三、大θ表示法

       用於界定函數的漸進上界和漸進下界。當f(n)= θ(g(n))的時候,代表着g(n)為f(n)的漸進緊確界。而θ漸進描述符在所有的漸進描述符中是最嚴格的一個,因為它既描述了函數的上界,有描述了函數的下界。

       算法導論 中是如何描述大θ表示法的。

       f(n)= θ(c.g(n))正式的數學定義:存在正常數c1、c2、n、n0,當n>n0的時,對於任意的f(n)對符合c1.g(n)<= f(n)<= c2.g(n),c1.g(n)、c2.g(n)都是漸進正函數(當n趨於無窮大的時候,f(n)為正)。  

        直觀視覺圖如下所示:              

 

 重要性質: 當且僅當函數f(n)= O(g(n))and f(n)=Ω(g(n))時,f(n)= θ(g(n))

 

4:題目

分析下表中左側每行函數f(n)和每列函數g(n)之間的漸進效率關系,根據該關系屬於f(n)ÎO(g(n)), f(n)ÎΩ(g(n)), f(n)ÎΘ(g(n))三種中的哪一種,在下方空白處填寫合適的符號O,Ω或Θ。如果f(n)g(n)之間有不止一種合適的漸進效率關系,僅填寫最嚴格的那種關系。第一行已作為示范給出。(無需給出計算過程,每空1分)

 

 

 

g(n)

 

n

n2

2n

f(n)

n2

Ω

Θ

O

 

nlogn4

 

 

 

 

(1.1)n-10

 

 

 

 

(n-2)!

 

 

 

 

5n+7n-1

 

 

 

 

 

答案:

 

g(n)

 

n

n2

2n

f(n)

n2

Ω

Θ

O

 

nlogn4

Ω

O

O

 

(1.1)n-10

Θ

O

O

 

(n-2)!

Ω

Ω

Ω

 

5n+7n-1

Θ

O

O


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM