递归时间复杂度剖析

什么是时间复杂度

  1. 常数时间的操作:一个操作如果和数据量没有关系,每次都是 固定时间内完成的操作,叫做常数操作。
  2. 时间复杂度为一个算法流程中,常数操作数量的指标。常用O (读作big O)来表示。具体来说,在常数操作数量的表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分 如果记为f(N),那么时间复杂度为O(f(N))。
  3. 评价一个算法流程的好坏,先看时间复杂度的指标,然后再分 析不同数据样本下的实际运行时间,也就是常数项时间

递归行为时间复杂度的估算

master公式的使用

 T(N) = a*T(N/b) + O(N^d) 

时间复杂度估算:

  1. log(b,a) > d 时 时间复杂度为O(N^log(b,a))
  2. log(b,a) = d 时 时间复杂度为O(N^d * logN)
  3. log(b,a) < d 时 时间复杂度为O(N^d)

猜你喜欢

转载自blog.csdn.net/qq_35416214/article/details/106273791