+ -
当前位置:首页 → 问答吧 → 怎么估算一个算法的时间复杂度

怎么估算一个算法的时间复杂度

时间:2010-08-15

来源:互联网

最近对估算算法的时间复杂度感到力不从心,请教大家是怎么快速的估算时间复杂度的呢?来谈谈心得吧,谢谢

作者: borefo   发布时间: 2010-08-15

很多时候是靠经验,套相似的模型,重新开始推导出准确的这样太烦了
举个例子:比如很经典的归并排序的模型,可以套用到很多分治的操作上
这些多分析就有感觉了

作者: daybreakcx   发布时间: 2010-08-15

回复 daybreakcx
  1.     for (i = 1; i < n; i *= 2)
  2.         for (j = 1; j < i; j++)
  3.             laugh++;
复制代码
这个算法的时间复杂度怎么估算呢?谢谢!

作者: borefo   发布时间: 2010-08-15



QUOTE:
回复  daybreakcx 这个算法的时间复杂度怎么估算呢?谢谢!
borefo 发表于 2010-08-15 20:27




    按照大的算,n看成是2^k,那么就是外围是for上k=logn下取整次(每次都*2了),每次内部执行是i次,也就是2的指数次,也就是总的是2^0+2^1+...+2^k=2^(k+1)-1左右,2^(k+1)大概是2*n左右,也就是说时间复杂度大概是O(n),不知道有没有估错……

作者: daybreakcx   发布时间: 2010-08-15