算法导论-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. 和式界的证明方法

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值