通常在算法中,为了证明某个算法执行 n 次项时所需要的时间,我们需要借由一些比较视觉化的方式去展现出来。如果秉持着职人精神,我们可以把 n 带入 1、2、3…、1000、…10000… 去跑,并将每次执行完成所需时间做成一张图表,精神可贵,但时间不够。为此我们需要以比较“数学化”的方式去分析每个算法,这就是我们这章节需要介绍的 Asymptotic analysus 渐进分析了。

渐进分析的大纲是在于,当我执行的次数 n 接近于无限大的时候,我们的执行时间会是以何种趋势去增长?可能是以对数形式 log ,也可能是以线性级数 ax+b,又或是以指数形式

之类的形式去增长,找到他的最高上限 O,最低下限 Ω 以及平均上限下限 Θ。

Big-O 表示其算法在“最坏情况”时所需要的时间上限,也是我们一般评定算法速度的方法。

时,分子分母相消后还会存在至少一个 n 于分子,那这样出来的 c 就会等于无限大,与定义不合。下面关于 Ω 的证明也可以这样想。

Ω 跟刚刚所提到的 Big-O 是完全相反的概念,他表示的是算法的时间下限,也就是“**解”时候所花费的时间渐近线。

在浏览器储存我的名字 电子邮件和网站以备下次留言时使用.