美文网首页
渐进性分析和算法复杂度

渐进性分析和算法复杂度

作者: 闪电侠悟空 | 来源:发表于2020-07-08 14:48 被阅读0次

1. 渐近线(直线)

曲线的渐近线
  • 渐近线是曲线的一种性质,描述曲线在很远位置处的表现,属于高中课本知识;
  • 通常是用直线 y = g(x)来描述曲线y= f(x)在远处的性质; 也就是曲线f(x)在很远处和直线f(x)基本重合,(不严格的)数学上是:\lim_{x\rightarrow +\infty} [f(x)-g(x)]\rightarrow 0
  • 问题:不是所有的曲线f(x)都有直线的渐近线, 比如f(x)=x^2+x

2. 渐进曲线(同数量级曲线)

https://www.bilibili.com/video/BV1c741137Wf?from=search&seid=13836527270049512517
  • 也是研究曲线f(x)在很远处的表现,不过想用简单曲线逼近复杂曲线。看上图,T_1(n)即使乘以系数1.1,按照渐近线定义的绝对距离也没法收敛,不能继续工作了,所以只能退而求其次,采用数量级上的分析。
  • 通常是用简单曲线 y = g(x)来描绘曲线y= f(x)在数量级上的表现; 数学上用:\lim_{x\rightarrow +\infty} [\frac{f(x)}{g(x)}] 来度量。出现数量级上的三种比较结果(大,小,相等)。参考https://blog.csdn.net/chieryu/article/details/50432699
  • Big O, O, 表示上界。 用\lim_{x\rightarrow +\infty} [\frac{f(x)}{g(x)}]\rightarrow0 (数量级上f(x)大) 或者\lim_{x\rightarrow +\infty} [\frac{f(x)}{g(x)}]\rightarrow c, c\neq0 (数量级上f(x)g(x)相同)表示函数f(x)在很远处的数量级上的上界是g(x)。这种表示太啰嗦,所以大家规定出记号。f(x)=O(g(x)), 上界.
  • 类似,还有下界\Omega, f(x)=\Omega(g(x))。如果既是上界,又是下界,我们就可以说确界(或者紧界)关系 f(x)=\Theta(g(x)).
  • 在算法复杂度分析中,通常有O(n),O(n^2),O(nlog(n)),等等。

相关文章

  • 渐进性分析和算法复杂度

    1. 渐近线(直线) 渐近线是曲线的一种性质,描述曲线在很远位置处的表现,属于高中课本知识; 通常是用直线 来描述...

  • 算法

    重拾算法:算法效率分析(一)(空间复杂度和时间复杂度) 详解算法的各种复杂度的差别有多大(带图) 算法复杂度 选择...

  • 算法复杂度分析

    复杂度分析: 数据结构和算法解决的两大问题:快和省。运行快,储存省。 复杂度分析是算法学习的精髓:时间复杂度,空间...

  • 数据结构-复杂度分析

    为什么需要复杂度分析? 复杂度分析实在太重要了。复杂度分析是整个算法学习的精髓,只要掌握了它,数据结构和算法的内容...

  • 时间复杂度和空间复杂度笔记

    复杂度分析笔记 复杂度主要分为时间和空间复杂度 时间复杂度:算法(程序)执行的时间变化趋势 空间复杂度:算法(程序...

  • 复杂度分析(上)

    复杂度分析(上) 如何分析、统计算法的执行效率和资源消耗 数据结构和算法解决的是快 和 省的问题复杂度分析是整个算...

  • 数据结构与算法学习-复杂度分析

    前言 这一篇笔记主要记录总结了什么是算法复杂度?、为什要做算法复杂度分析?、如何做算法复杂度分析?、常用的复杂度级...

  • 算法复杂度分析与最大子串问题

    算法复杂度分析 算法复杂度基本定义 算法复杂度分析基于以下四条定义: 如果存在常数c与$n_{0}$使$N \ge...

  • 数据结构与算法-复杂度分析

    时间、空间复杂度:衡量算法执行小路的指标,数据结构与算法离不开时间、空间复杂度分析,复杂度分析是算法的精髓。 为什...

  • 一个好的算法如何测评

    一个算法的好坏可以根据复杂度分析来测评. 复杂度分析包括时间复杂度和空间复杂度. 1.时间复杂度 需要考虑: 1)...

网友评论

      本文标题:渐进性分析和算法复杂度

      本文链接:https://www.haomeiwen.com/subject/vpgqcktx.html