1. 计算复杂度以及渐进复杂度。
同一个问题往往可以用效率不同的算法来分析,“计算复杂度”旨在衡量算法的效率。计算复杂度表示应用一种算法需要付出的努力或成本,通常指时间(更重要)和空间。
在评估算法效率时,采用某种逻辑单位来描述数据的尺度 n 同处理所需时间 t 之间的关系,如 t = n ^ 2 + 100n。
通常 t 和 n 的关系比较复杂,不会从实质上改变函数数量级的项目应从函数中剔除,这种效率的估量就称为渐进复杂度。
2. 大O表示法
定义:
如果存在正数 c 和 N,对于所有的 n >= N, 有 f(n) <= cg(n),则 f(n) = O(g(n))。
上述定义可以理解为g(n) 是f(n) 的一个上界。
例如对于 f(n) = 2n^2 + 3n + 1,大O表示法即为O(n^2)