Fork me on Gitee

算法分析——算法的渐进效率分析

一、大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

posted @ 2019-12-04 20:43  ---dgw博客  阅读(2471)  评论(1编辑  收藏  举报