Princeton Algorithms, Part I week1 analysis of algorithm
analysis of algorithm
大多数算法的运行时间都可表示为$T(N) = a N^{b}$ 的形式,如果当前算法是这种形式的运行时间,那么我们可以用一种简单的方法算出a和b。 首先是算b的方法
我们把N的数量以2的倍数扩大,然后把运行时间记下来,这一次的运行时间和上一次的比值再经过log以后就是b的值。那么a怎么算呢?a就只需要找一个运行的时间直接通过\(a=\frac{T(N)}{N^b}\) 计算即可。
在算法分析的过程中,如果每一个操作都去分析太过冗长,所以在分析过程中我们一般把一些操作作为算法运行时间的代表,比如一些array access或者swap等等。在分析算法的时候,我们常常只保留高阶项而省去低阶项。比如算法运行时间为\(6N^2+N~6N^2\),我们会省去一阶项。
还有就是,在分析算法的过程中,我们会有一些符号
这些符号提供了算法是否渐进收敛到某个复杂度或者是上下界限。
浙公网安备 33010602011771号