asymptotic
渐近分析asymptotic analysis、asympt
渐近分析(asymptotic analysis、asymptotics),在数学分析中是一种描述函数在极限附近的行为的方法。有多个科学领域应用此方法。例子如下: 在计算机科学中,算法分析考虑给定算法在输入非常大的数据集时候的性能
通常在算法中,为了证明某个算法执行 n 次项时所需要的时间
通常在算法中,为了证明某个算法执行 n 次项时所需要的时间,我们需要借由一些比较视觉化的方式去展现出来。如果秉持着职人精神,我们可以把 n 带入 1、2、3…、1000、…10000… 去跑,并将每次执行完成所需时间做成一张图表,精神可贵,但时间不够。为此我们需要以比较“数学化”的方式去分析每个算法,这就是我们这章节需要介绍的 Asymptotic analysus 渐进分析了
数据结构和算法本身是为了解决快和省的问题
数据结构和算法本身是为了解决快和省的问题,我们希望代码运行快,并且希望节省存储空间,所以执行效率是一个很重要的考量指标,接下来要讲的是时间复杂度和空间复杂度 我们可以通过把代码跑一遍,然后通过统计,监控等得到算法执行事件和占用的内存空间大小,这种方法是事后统计法,有很大的局限性: 所以,我们需要用一个不需要具体的测试数据来测试,就可以粗略地估计算法的执行效率的方法,也就是时间,空间复杂度分析方法。 假设每行代码执行的时间都是一样,为unit_time时间,那么总的执行时间就是(2n+2)unit_time所有代码的执行时间T(n)和每行代码的执行次数f(n)成正比。 我们可以把这个规律总结成一个公式