算法(第4版)-1.4.6 倍率试验
总结:本小节讲述了倍率试验的实现和作用。
重点:
1. 倍率试验的实现:
· 开发一个输入生成器来产生实际情况下的各种可能的输入。
· 运行程序,它能够计算每次实验和上一次的运行时间的比值。
· 反复运行知道该比值趋近于极限2^b。
这个实验对于比值没有极限的算法无效,但它仍然适用于许多程序,我们可以得出以下结论:
· 它们的运行时间的增长数量级约为N^b。
· 要预测一个程序的运行时间,将上次观察得到的运行时间乘以2^b并将N加倍,如此反复。如果你希望预测的输入模型不是N乘以2的幂,可以相应的调整这个比例。
2. 了解程序的运行时间的增长数量级能够为你提供精确的信息,从而理解你能够解决的问题规模的上限。
3. 根据增长的数量级函数做出的预测:
描述 | 函数 | 系数为2 | 系数为10 |
线性级别 | N | 2 | 10 |
线性对数级别 | NlogN | 2 | 10 |
平方级别 | N^2 | 4 | 100 |
立方级别 | N^3 | 8 | 1000 |
指数级别 | 2^N | 2^N | 2^9N |