如何进行复杂度分析?
时间复杂度分析:
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)
原文链接