渐近分析主要思想是对不依赖于机器特定常数的算法的效率进行测量,主要是因为该分析不需要实现算法并且要比较程序所花费的时间。

我们已经讨论了三个主要的渐近符号。本文我们使用以下2个渐近符号表示算法的时间复杂度。

小ο渐近符号

大O被用作算法效率的增长的紧密上限(这个效率由函数f(n)描述),尽管如上所述,它也可以是松散的上限。“ο”(ο())表示法用于描述不能紧的定义:令f(n)和g(n)是将正整数映射到正实数的函数。如果对于任何实常数c> 0,则f(n)是ο(g(n))(或f(n)∈(g(n))),存在整数常数n0≥1,使得f (n)0. 它的意思是小o()表示f(n)的松散上限。 在数学关系中, f(n)= o(g(n))表示 lim f(n)/ g(n)= 0 n→∞


例如:7n + 8∈o(n 2)是吗?为了实现它,对于任何c,我们必须能够找到使f(n)<c * g(n)渐近为真的n0 。

让我们举个例子,如果c = 100,我们检查不平等是否明确。

如果c = 1/100,我们将不得不使用更多的想象力,但是我们可以找到一个n0。(尝试n0 = 1000.)从这些例子中,推测似乎是正确的。

然后检查限制,lim f(n)/ g(n)= lim(7n + 8)/(n 2)= lim 7 / 2n = 0(洛必达法则)

n→∞   n→∞  n→∞

因此7n + 8∈o(n 2

小的ω渐近符号

定义: 令f(n)和g(n)是将正整数映射到正实数的函数。我们说f(n)是ω(g(n))(或f(n)∈ω(g(n)))如果对于任何实常数c> 0,存在整数常数n0≥1, (n)> c * g(n)≥0,对于整数n≥n0。

f(n)具有比g(n)更高的增长率,因此大欧米茄(Ω)和小欧米茄(ω)之间的主要差异在于它们的定义。在大欧米茄f(n)=Ω(g(n )),并且边界为0 <= cg(n)0,但是在小的Ω的情况下,对于所有常数c> 0都是如此。

我们使用ω表示法来表示不渐近紧的下界。
f(n)∈ω(g(n))当且仅当g(n)∈ο((f(n))),

在数学关系中,
如果f(n)∈ω ,

lim f(n)/ g(n)=∞

n→∞示例:

证明4n + 6∈ο(1); 
ω(ο)运行时间可以通过应用下面给出的限制公式来证明。
如果lim f(n)/ g(n)=∞,则函数f(n)为ο(g(n))
n→∞ 
这里,我们有函数f(n)= 4n + 6和g(n)= 1 
lim(4n + 6)/(1)=∞
n→∞ ,对于任何c,我们可以得到n0为这个不等式0 <= c * g(n)<f(n),0 <= c * 4n + 6 
因此证明。

最新文章

  1. XML约束之DTD
  2. LintCode Search Insert Position
  3. 再详细的介绍一下Unity5的AssetBundle
  4. 计算XX年的某月某日是当年的第多少天?是星期几?
  5. 关闭iOS的自动更新
  6. 【转】使用dos2unix批量转换文件
  7. C# winform xml的增删改查
  8. TCP为什么需要3次握手与4次挥手
  9. cx_Oracle模块学习之绑定变量
  10. delphi 自我删除和线程池(1000行代码,需要仔细研究)
  11. C语言移位运算
  12. 用jQuery模拟淘宝购物车
  13. 关于&lt;Servlet&gt;定义
  14. [LeetCode] 15. 三数之和
  15. C# 木马功能的简单实现
  16. 3、SourceTree通过PUTTY连接GitLab
  17. 初级JS
  18. 微信小程序设置底部导航栏目方法
  19. 有关平台支持的从经典部署模型到 Azure Resource Manager 的迁移的技术深入探讨
  20. Objective-C 关于静态方法与实例方法

热门文章

  1. 十二、VueJs 填坑日记之项目打包发布
  2. strcmp函数
  3. thinkphp5源码解析(1)数据库
  4. Elasticsearch中Head插件的使用
  5. PHP就业前景好不好一看便知,转行选择需谨慎!
  6. Android 7.0 中 ContentProvider 实现原理
  7. Mysql服务器SQL模式 (官方精译)
  8. 采用Opserver来监控你的ASP.NET项目系列(一、Opserver监控的简介与平台搭建)
  9. NOIP2016提高组初赛(2)四、读程序写结果3、求最长回文子序列
  10. Mysql的管理及使用