算法导论阅读笔记——渐进表示法(2)

本文深入解析算法复杂度分析中的渐进表示法,重点讲解Θ表示法的含义及其与大O、大Ω的区别。通过数学语言阐述了Θ表示法在算法效率分析中的应用,并对比了O与Ω表示法的不同之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法导论阅读笔记——渐进表示法(2)

1.Θ表示法:
上一篇讲到了大O表示法以及大Ω表示法 而大Θ表示法是大O与大Ω表示同一个函数g(n)的 情况 即f(n)=O(g(n))=Ω(g(n))是f(n)=Θ(g(n))的充分条件
其精确的数学语言表示是 满足O与Ω的数学表示的交集情况:
对于正的常数c1,c2(任取一个)存在n0 有c1g(n)<=f(n)<=c2g(n) 在n>n0时成立

2.更加深刻的理解:
这几个表示法都蕴含着渐进等于的意义 即是当n在趋于正无穷的情况下(因为对于n0的取值可以趋近于正无穷) f(n)越来越趋近于cg(n) 但是也有一些不同 比如 Θ 是f(n)越加趋近且等于c3g(n) (c1<=c3<=c2)

——对于O与Ω的讨论就要分为两种情况了
下边我们以O为例(Ω以此类推就可以了)
(1)当cg(x)是f(x)的上确界时 :
我们先复习一下高数知识 对于一个函数m(x)的上界是指这个函数在x趋近于正无穷时 函数的值m(x)始终小于这个上界的值 而对于一其上确界 则表示在x趋近于正无穷时m(x)始终小于这个上确界 但是与上确界无限地逼近于这个函数
所以 当输入规模非常大的时候 我们可以用这个确界函数来代替原本的复杂度计算函数 当我们忽略了这个确界的系数时 便得到了 大O表示法的函数 用来显性表示一个算法复杂度上限
(2)当cg(x)是f(x)的上界时:
正如(1)中所述 此时f(x)始终<cg(x) 可以用cg(x)来表示其上界

所以综上所述 O表示了一个<=的上界 ——这个算法是不会大于cg(x)的 将算法的效率的下界(效率和复杂度是反比的)用一个精妙简介的函数g(x)来表达
同理 Ω表示了一个>=的下界 表示出了算法效率的上界

——对于Θ的分析
我们前边说过了 Θ是同时满足O与Ω的情况 但是 此处还有一个限制条件 就是满足的两个g(x)是相同的 但此时的g(x)并不一定是其上下确界 比如 对于f(x)=n3+n=Θ(n3) 但是 f(x)的上下确界不是cg(x)=n3 如果是确界的话 我们很明显地可以推出 两个确界函数cg(x)与f(x)三者之间是完全重合的(此处的确界概念可能有一定出入 因为在渐进表示法中 是允许渐进表示重合的 所以f(x)与cg(x)可以相等)
**Θ的意义是用一个简洁的函数来表示复杂度f(x) 而不是用来简洁表示上界或者下界 **
此时的Θ表示就有两点好处:
(1)清晰:用Θ表示 会自动忽略低阶项和最高阶前边的系数 符合上一篇所说的表示复杂度的目的(将影响不大的项忽略掉 会减少很多的计算)
(2)简洁:我们可以将一个多项式“收缩”为只含一项的Θ表示式 带入运算 在运算到需要的时候 我们可以将Θ“展开”为多项式后继续分析

说道缩放与展开 不得不提到 Θ计算中的一些公式以及具体证明方法:
(1)多项式变为Θ表示会忽略低阶项以及最高阶系数:
在这里插入图片描述
(2)Θ可以根据精度不同展开 :
低精度展开可以直接展开为 cg(n) 高精度可以展开为多项 :
如Θ(n3)可以展开为cn3或者c1n3+c2n2+c3n+c4
证明过程类似与(1)的逆向 不必赘述

ok 就这么多
日常更新 顺便推荐一波mit的算法教程

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值