1、复杂度也叫渐进复杂度,包括时间复杂度和空间复杂度,用来分析算法执行效率与数据规模之间的增长关系。
2、常见的从低阶到高阶的复杂度为:O(1)→O(logn)→O(n)→O(nlogn)→O(n²)。
3、时间复杂度的分析方法有:
(1)只关注循环执行次数最多的一段代码。
(2)加法法则:总复杂度等于量级最大的那段代码的复杂度。
(3)乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积。
4、复杂度的量级可以分为两类:多项式量级和非多项式量级。非多项式量级有两个:O(2n)和O(n!),当n越来越大时,NP是非常低效的算法。
5、同一段代码,在不同的输入情况下,复杂度量级可能不一样,可以分为以下几种:
最好情况时间复杂度、最坏情况时间复杂度、平均情况时间复杂度、均摊时间复杂度。