Algorithms
算法是一组用于解决有明确定义的计算问题的规则。
分析算法的运行效率主要有以下三个原则
- 不对输入进行假设,分析最差情况
- 分析主要问题,忽略常量系数和低阶项
- 渐进分析,考虑输入规模大的情况,这才是需要精妙算法的地方
一个快的算法值得是随着输入规模的增大,最差情况下耗时增长的比较慢。线性和线性对数时间复杂度都是非常快的算法。
当然,常量系数也是很重要的,对程序实际性能也有很大的影响。当渐进复杂度最优之后,努力降低系数就很有必要了。
在这个系列中,我不仅会描述算法和数据结构的实现细节,还会分析它们的性能(包括必要的数学推导)。