zoukankan      html  css  js  c++  java
  • 算法分析——算法的渐进效率分析

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

  • 相关阅读:
    69.广搜练习:  最少转弯问题(TURN)
    51..分治算法练习:  4378 【Laoguo】循环比赛
    50.分治算法练习:  二分算法:  2703 奶牛代理商 XII
    [转载]双向广搜
    49.分治算法练习:  1497 取余运算
    48.贪心练习:  1621 混合牛奶
    47..贪心  失恋28天-追女孩篇
    46.贪心算法练习:  区间合并
    45.分支算法练习:  7622:求排列的逆序数
    44.分治算法练习:  一元三次方程求解
  • 原文地址:https://www.cnblogs.com/dgwblog/p/11985455.html
Copyright © 2011-2022 走看看