什么是时间复杂度
- 常数时间的操作:一个操作如果和数据量没有关系,每次都是 固定时间内完成的操作,叫做常数操作。
- 时间复杂度为一个算法流程中,常数操作数量的指标。常用O (读作big O)来表示。具体来说,在常数操作数量的表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分 如果记为f(N),那么时间复杂度为O(f(N))。
- 评价一个算法流程的好坏,先看时间复杂度的指标,然后再分 析不同数据样本下的实际运行时间,也就是常数项时间
递归行为时间复杂度的估算
master公式的使用
T(N) = a*T(N/b) + O(N^d)
时间复杂度估算:
- log(b,a) > d 时 时间复杂度为O(N^log(b,a))
- log(b,a) = d 时 时间复杂度为O(N^d * logN)
- log(b,a) < d 时 时间复杂度为O(N^d)