算法导论笔记:03渐进符号
来源:互联网 发布:党员数据分析 编辑:程序博客网 时间:2024/05/21 14:04
1:Θ记号:
对一个给定的函数g(n),用Θ(g(n))来表示以下函数的集合:
Θ(g(n))={f(n):存在正常量c1、c2 和 n0,使得对所有n≥n0,有0≤c1g(n)≤f(n)≤c2g(n)}
称g(n)是f(n)的一个渐近紧确界(asymptotically tight bound)。
2:O符号
当只有一个渐近上界时,使用O记号。对于给定的函数g(n),用O(g(n))示以下函数的集合:
O(g(n))={f(n):存在正常量c和n0,使得对所有n≥n0,有0≤f(n)≤cg(n)}
当我们说“运行时间为O(n^2)”时,意指存在一个O(n^2)的函数f(n),使得对n的任意值,不管选择什么特定的规模为n的输入,其运行时间的上界都是f(n)。这也就是说最坏情况运行时间为O(n^2)。
3:Ω记号
Ω记号提供了渐近下界。对于给定的函数g(n),用Ω(g(n))来表示以下函数的集合:
Ω(g(n))={f(n):存在正常量c和n0,使得对所有n≥n0,有0≤cg(n)≤f(n)}
当称一个算法的运行时间(无修饰语)为Ω(g(n))时,我们意指对每个n值,不管选择什么特定的规模为n的输入,只要n足够大,对那个输入的运行时间至少是g(n)的常量倍。等价地,我们再对一个算法的最好情况运行时间给出一个下界。例如,插入排序的最好情况运行时间为Ω(n),这蕴涵着插入排序的运行时间为Ω(n)。
4:o记号
由O记号提供的渐近上界可能是也可能不是渐近紧确的。界2n^2=O(n^2)是渐近紧确的,但是界2n=O(n^2)却不是。我们使用o记号来表示一个非渐近紧确的上界。形式化地定义o(g(n))为以下集合:
o(g(n))={f(n):对任意正常量c>0,存在常量n0>0,使得对所有n≥n0,有0≤f(n)<cg(n)}。
5:ω记号
ω记号与Ω记号的关系类似于o记号与O记号的关系。我们使用ω记号来表示一个非渐近紧确的下界。定义它的一种方式是:f(n)∈ω(g(n))当且仅当g(n)∈o(f(n))
然而,我们形式化地定义ω(g(n)):为以下集合:
ω(g(n))={f(n):对任意正常量c>0,存在常量n0>0,使得对所有n≥n0,有0≤cg(n)<f(n)}
6:一般来说,对任意多项式p(n)=,其中为常量且>0,我们有p(n)=Θ(n^d)。
- 算法导论笔记:03渐进符号
- 【算法笔记】渐进符号
- 麻省理工学院《算法导论》课堂笔记(第二集)渐进符号、递归及解法
- 【算法导论】【第三章】掌握渐进符号O和Ω
- MIT算法导论-第二讲-渐进符号,递归及解法
- 算法渐进符号
- 算法导论学习-渐进表达式
- 算法导论学习笔记-渐近符号
- 【算法导论】01 运行时间,渐进分析
- [算法导论] 函数的增长---渐进记号
- 算法导论第三章--- 渐进记号
- 渐进记号的引入(算法导论)
- 如何理解算法中的渐进符号?
- 渐进符号
- 渐进符号
- 渐进符号
- 渐进符号
- 渐进符号
- 由vfork()结合exit()想到的若干问题
- VirtualBox虚拟机系列:Centos的IP配置
- OPENGL CG 系列教程1-HelloVCG
- MFC贴肤Skin++
- Apache安装教程
- 算法导论笔记:03渐进符号
- 树莓派 - VNC的安装
- Struts2拦截器构成
- mysql最大连接数
- leetcode-107 Binary Tree Level Order Traversal II
- 大数阶乘问题
- Java——IO总结整理
- Android Drawable 那些不为人知的高效用法 -画圆角 已点击状态显示- UI性能优化
- C语言的文件读取操作总结