一、时间复杂度
(1)定义:时间复杂度并不表示代码的执行时间,而是表示代码执行时间随着数据规模的变化趋势。最终结果去掉低阶,常数,系数,只需要记录一个最大量级就可以了。
(2)时间复杂度的实用方法:
- 只关注循环次数最多的代码;
- 加法法则:总复杂度等于量级最大的代码的时间复杂度;
- 乘法法则:嵌套代码的时间复杂度等于被嵌套代码的时间复杂度和嵌套代码的时间复杂度的乘积;
- 只要代码不存在循环,递归即便有千万行代码,其时间复杂度仍为O(1)。
二、空间复杂度
(1)定义:表示算法的存储空间与数据规模之间的关系。
(2)空间复杂度的实用方法:
常见的空间复杂度:O(1);O(n);O(n平方)。