如何进行复杂度分析?

隐身守侯 提交于 2020-01-25 07:34:40

时间复杂度分析:

1、大 O 复杂度表示法:T(n) = O(f(n)),公式中的 O,表示代码的执行时间 T(n) 与 f(n) 表达式成正比

  • 只关注循环执行次数最多的一段代码
  • 总复杂度等于量级最大的那段代码的复杂度
  • 嵌套代码的复杂度等于嵌套内外代码复杂度的乘积

2、最坏情况时间复杂度:代码在最理想情况下执行的时间复杂度
3、最好情况时间复杂度:代码在最坏情况下执行的时间复杂度
4、平均时间复杂度:代码在所有情况下执行的次数的加权平均值
5、均摊时间复杂度:极少数高级别复杂度且发生具有时序关系时,可以将这几个高级别的复杂度均摊到低级别复杂度上,一般均摊结果就等于低级别复杂度

 

空间复杂度分析:

  • 与时间复杂度分析类似,关注算法的存储空间与数据规模之间的增长关系

 

常见的复杂度:

  • 常见的复杂度并不多,从低到高阶:O(1)、O(logn)、O(n)、O(nlogn)、O(n2)


来一道刷了进BAT的面试题?

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!