【算法设计与分析】04 函数的渐进的界

今天学习函数的渐进的界,会涉及多种数学符号。对以后学习分析算法复杂度有很大的帮助。

1 大OOO符号

  • 定义: 设 f 和 g是定义域为自然数集N上的函数. 若存在正数 c 和 n0, 使得
    对一切 n ≥\geq n0有:
    c≤f(n)≤cg(n)c\leq f(n) \leq cg(n)cf(n)cg(n)
    成立。则称f(n)的渐近的上届是g(n)。记作:
    f(n)=O(g(n))f(n)=O(g(n))f(n)=O(g(n))

例子:

  • f(n)=n2+2f(n)=n^2+2f(n)=n2+2,则
    f(n)=O(n2),取c=2,n0=1即可f(n)=O(n^2),取c=2,n_0=1即可f(n)=O(n2),c=2n0=1
    f(n)=O(n3),取c=3,n0=2即可f(n)=O(n^3),取c=3,n_0=2即可f(n)=O(n3),c=3n0=2

对于大OOO符号,有一下几条概念需要注意:

  1. f(n)=O(g(n)),f(n)的阶不高于g(n)的阶f(n)=O(g(n)),f(n)的阶不高于g(n)的阶f(n)=O(g(n)),f(n)g(n)
  2. 可能存在多个正数c,只要指出其中一个即可,
  3. 对前面有限个值可以不满足不等式
  4. 常函数可以写成O(1)O(1)O(1)

2 大Ω\OmegaΩ符号

  • 定义:设 f 和 g是定义域为自然数集N上的函数. 若存在正数 c 和 n0,使得对一切 n ≥\geq n0有:

0≤cg(n)≤f(n)0\leq cg(n)\leq f(n)0cg(n)f(n)
成立。则称f(n)f(n)f(n)的渐近的下届是g(n)g(n)g(n),记作:
f(n)=Ω(g(n))f(n)=\Omega(g(n))f(n)=Ω(g(n))

例子:

  • f(n)=n2+2f(n)=n^2+2f(n)=n2+2,则
    f(n)=Ω(n2),取c=1,n0=1即可f(n)=\Omega(n^2),取c=1,n_0=1即可f(n)=Ω(n2),c=1n0=1
    f(n)=Ω(100n),取c=1/100,n0=1即可f(n)=\Omega(100n),取c=1/100,n_0=1即可f(n)=Ω(100n),c=1/100n0=1

对于Ω\OmegaΩ符号,需要注意以下几点:

  1. f(n)=Ω(g(n)),f(n)的阶不低于g(n)的阶f(n)=\Omega(g(n)),f(n)的阶不低于g(n)的阶f(n)=Ω(g(n)),f(n)g(n)
  2. 可能存在多个正数c,只要指出其中一个即可
  3. 对前面有限个n值可以不满足上述不等式

3 小ooo符号

  • 定义:设 f 和 g是定义域为自然数集N上的函数. 若对任意正数 c 都存在 n0,使得对一切 n ≥\geq n0有:
    0≤f(n)<cg(n)0 \leq f(n) < c g(n)0f(n)<cg(n)
    成立。则记作:
    f(n)=o(g(n))f(n) = o(g(n))f(n)=o(g(n))

例子:

  • f(n)=n2+2f(n)=n^2+2f(n)=n2+2,则
    f(n)=o(n3),c≥1显然成立。因为n2+n<cn3(n0=2)f(n)=o(n^3),c\geq1显然成立。因为n^2+n<cn^3(n_0=2)f(n)=o(n3),c1n2+n<cn3n0=2
    对于1>c>0,取n0>⌈2c⌉即可,因为:对于1>c>0,取n_0>\left \lceil \frac{2}{c} \right \rceil即可,因为:1>c>0n0>c2
    cn≥cn0>2cn\geq cn_0>2cncn0>2 (当n≥n0\geq n_0n0
    n2+n<2n2<cn3n^2+n<2n^2<cn^3n2+n<2n2<cn3

对于小ooo符号,需要注意以下几点:

  1. f(n)=o(g(n)),f(n)的阶低于g(n)的阶f(n)=o(g(n)),f(n)的阶低于g(n)的阶f(n)=o(g(n)),f(n)g(n)
  2. 对不同正数c,n0 不一样,c越小,n0越大。
  3. 对前面有限个n值可以不满足上述不等式

4 小ω\omegaω符号

  • 定义:设 f 和 g是定义域为自然数集N上的函数. 若对任意正数 c 都存在 n0,使得对一切 n ≥\geq n0有:
    0≤cg(n)<f(n)0 \leq cg(n) < f(n)0cg(n)<f(n)
    成立。则记作:
    f(n)=ω(g(n))f(n) = \omega(g(n))f(n)=ω(g(n))

例子:

  • f(n)=n2+2f(n)=n^2+2f(n)=n2+2,则
    f(n)=ω(n),不能写f(n)=ω(n2),因为取c=2,不存在n0,使得对一切n≥n0有下式成立f(n)=\omega(n),不能写f(n)=\omega(n^2),因为取c=2,不存在n_0,使得对一切n\geq n_0有下式成立f(n)=ω(n),f(n)=ω(n2),c=2n0使nn0
    cn2=2n2<n2+n(不成立)c n^2 = 2n^2< n^2 + n (不成立)cn2=2n2<n2+n

对于小ω\omegaω符号,需要注意以下几点:

  1. f(n)=ω(g(n)),f(n)的阶高于g(n)的阶.f (n)=\omega (g(n)), f (n)的阶高于g(n) 的阶.f(n)=ω(g(n)),f(n)g(n).
  2. 对不同的正数c,n0不等,c越大n0越大.对不同的正数c, n_0不等, c 越大n_0 越大.c,n0cn0.
  3. 对前面有限个 n 值可以 不满足不等式.

5 Θ\ThetaΘ符号

  • 定义:若f(n)=O(g(n))且f(n)=Ω(g(n)),f(n)=O(g(n))且f(n)=\Omega(g(n)),f(n)=O(g(n))f(n)=Ω(g(n)),则记作:

f(n)=Θ(g(n))f(n)=\Theta(g(n))f(n)=Θ(g(n))

例子: f(n)=n2+n,g(n)=100n2,那么有f(n) =n^2 + n, g(n) =100n^2,那么有f(n)=n2+n,g(n)=100n2
f(n)=Θ(g(n))f(n)=\Theta (g(n))f(n)=Θ(g(n))

注意以下两点:

  1. f(n)的阶与g(n)的阶相等f(n)的阶与g(n)的阶相等f(n)g(n)
  2. 对前面有限个n值,可以不满足条件

6 总结

  • 五种表示函数的阶的符号:O,Ω,o,ω,ΘO,\Omega,o,\omega,\ThetaO,Ω,o,ω,Θ
  • 理解它们的定义
  • 如何用定义证明函数的阶?下一篇文章继续学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

11月10日 14:00~16:00 上海敏捷开发沙龙

主题&#xff1a;火星人陈勇将赴上海主办线下沙龙&#xff0c;主题是“自组织团队与松结对编程”&#xff08;2011 微软 TechED演讲主题&#xff09;&#xff0c;演讲后有团队问答PK活动。日期&#xff1a;2011年11月10日时间&#xff1a;下午14&#xff1a;00&#xff5e;16&a…

c语言头文件和源文件_C语言头文件防卫式声明

C语言一般提供三种预处理功能&#xff1a;宏处理、文件包含、条件编译。头文件防卫式申明中会用到条件编译中 #ifndef、#define、#endif 的用法。所以&#xff0c;首先价绍下条件编译。1 条件编译一般情况下&#xff0c;在生成可执行文件的过程中&#xff0c;源程序文件中的所有…

tomcat原理,一个客户端请求的处理过程

假设来自客户的请求为&#xff1a;http://localhost:8080/wsota/wsota_index.jsp1) 请求被发送到本机端口8080&#xff0c;被在那里侦听的Coyote HTTP/1.1 Connector获得2) Connector把该请求交给它所在的Service的Engine来处理&#xff0c;并等待来自Engine的回应3) Engine获得…

python定义函数需要保留字def_定义函数时要用到哪一个python保留字?_学小易找答案...

【简答题】常见的足部畸形有哪些?例举6种以上。【其它】请将会计学小册子第四章完成情况(选择判断业务题2. 6.)的所有内容拍照上传嗷【其它】以小组为单位进行现场调研,对足球场外的广场区域植物造景进行统计,每个同学利用CAD软件对该场地进行绘图,掌握园林中自然式绿地的植物…

aop编程时出现错误信息:java.lang.NoClassDefFoundError

代码错误信息&#xff1a; org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘calImpl’ defined in file [/Users/lyy0217/Downloads/SSM/target/classes/com/cm/service/aop/CalImpl.class]: BeanPostProcessor before instantiat…

Firebug控制台详解

作者&#xff1a; 阮一峰 日期&#xff1a; 2011年3月26日 Firebug是网页开发的利器&#xff0c;能够极大地提升工作效率。 但是&#xff0c;它不太容易上手。我曾经翻译过一篇《Firebug入门指南》&#xff0c;介绍了一些基本用法。今天&#xff0c;继续介绍它的高级用法。 Fi…

标签 href 怎么拼接_【微信】用户-标签的兴趣建模

这一篇分享的是CIKM2020微信的learning to build user-tag profile&#xff0c;主要介绍了微信看一看&#xff08;"Top Stories"&#xff09;中&#xff0c;如何进行用户-标签的兴趣建模&#xff0c;提升推荐效果。1、背景看一下微信看一看场景下的推荐流程&#xff…

【算法设计与分析】05 有关函数的渐进的界的定理

上一篇文章学习了函数的渐近的界定义&#xff0c;本篇文章继续学习函数渐近的界定理。这些定理的证明&#xff0c;用到了函数渐近的界的定义。点击查看上一篇文章&#xff1a;【算法设计与分析】04 函数的渐进的界 文章目录1. 定理11.1 证明定理11.2 估计函数的阶1.3 一些重要的…

一般窗体的设计方式

一般窗体的设计方式&#xff1a; 包含有&#xff08;搜索框、数据列表框、分页框&#xff09;、由搜索返回的数据列表中是否包含“当前页码”、“页数量”的名称来决定显示分页功能。 如果你的搜索框经常性出现大于10个字段的搜索的话&#xff0c;那么应该采用HashTable的参数传…

hive 如何将数组转成字符串_教你如何将Power Logic的原理图转成Orcad的原理图

1、使用Power Logic软件打开pads的原理图(此处使用的是PADS9.5版本的)&#xff1b;2、执行菜单命令&#xff1a;File->Export->在弹出的对话框中点击“保存”按钮&#xff0c;然后选择“Select All”&#xff0c;并选择PADS Logic2005的版本输出&#xff0c;最后点击“OK…

【算法设计与分析】06 几类重要的函数

本篇文章中会用到上一篇文章的定理&#xff1a;【算法设计与分析】05 有关函数的渐进的界的定理 主要学习常见的一些函数的阶 1. 基本函数类 以下按阶的高低排序&#xff1a; 至少指数级&#xff1a; 2n, 3n, n!, …多项式级&#xff1a; n, n2, nlogn, n1/2, …对数多项式级…

vscode私钥设置_VSCode远程开发配置指南

凭借Windows10的大量组件和Visual Studio Code的强大插件&#xff0c;在Windows下远程开发Linux相关程序如今已经成为高效的选择。比起Vim&#xff0c;我更加喜欢VS Code&#xff0c;最主要的原因就是无需繁琐的配置&#xff0c;并且一次配置&#xff0c;可以通用很多环境。这大…

【算法设计与分析】07 算法的数学基础

接下来的几篇文章将是学习算法的数学基础内容。 具体的文章包括&#xff08;持续更新&#xff09;&#xff1a;

我理解的invoke和begininvoke

我理解的invoke和begininvoke 一直对invoke和begininvoke的使用和概念比较混乱&#xff0c;这两天看了些资料&#xff0c;对这两个的用法和原理有了些新的认识和理解。 首先说下&#xff0c;invoke和begininvoke的使用有两种情况&#xff1a; 1. control中的invoke、begininvok…

变换例题_用初等变换求逆矩阵的小小解释

在我们学习逆矩阵的过程中&#xff0c;肯定会遇到这样一种求逆矩阵的方法&#xff1a;若A是一个n阶可逆矩阵&#xff0c;&#xff08;虚竖线打不出&#xff0c;凑合着看吧&#xff01;&#xff09;这一过程中经历了一系列初等行变换&#xff0c;并且我们下结论说&#xff1a;中…

【算法设计与分析】08 序列求和的方法

本篇文章学习数列求和的一些方法。这些方法对后面学习算法的时间复杂度非常有帮助。 文章目录1. 数列求和公式1.1 二分搜索的时间复杂度求解2 估计和式上届的放大法3 估计和式渐近的界4 总结1. 数列求和公式 下面这几个数列求和公式都是高中学过的公式。 等差、等比数列和调和…

rufus中gpt和mrb磁盘_计算机关于磁盘的大杂烩

计算机关于磁盘的大杂烩(一)如何判断电脑到底uefi还是bios模式许多现代 PC 都支持了 UEFI 模式&#xff0c;而普通用户很难分辨自己的电脑到底使用的是传统 BIOS 还是 UEFI 模式。该文主要出于对简单制作 Windows 10 安装 U 盘一文的补充说明&#xff0c;这篇文章中我们曾提到可…

UVA 10003 Cutting Sticks

UVA_10003 这是个区间的动态规划问题&#xff0c;首先我们可以补两个端点&#xff0c;然后就按区间长度递增的顺序进行递推即可&#xff0c;区间长度为1时的花费要初始化成0&#xff0c;其余初始化为INF。 转移方程为f[i, j] min{f[i, k] f[k, j] a[j] – a[i]}(i < k &l…