一、时间复杂度
1、概念
时间复杂度:计算的是当一个问题量级增加的时间,时间增长的趋势;
O(大O表示法):渐进的时间复杂度
2、举例
① 以下 for 循环的时间复杂度:O(1 + 3n) = O(n)
去掉常数,保留最高次项去掉系数为常数的树
② 以下 for 循环的时间复杂度:O( n + n²) = O(n²)
保留最高次项
② 以下代码的时间复杂度:O(1)
常数的时间复杂度为 1
③ 以下代码的时间复杂度:O(logN)
转化为:2^i = n ,那么 logn = i, 所以当前的时间复杂度为 O(logN)
④ 以下代码的时间复杂度:O(nlogN)
⑤ 以下代码的时间复杂度:O(n²)
⑥ 以下代码的时间复杂度:O(nm)
⑦ 大题
3、常见的时间复杂度量级
排序:
4、其他复杂度指标
二、空间复杂度
1、概念
计算的是内存空间增长的趋势
2、举例
① 以下代码的空间复杂度:O(1)
x 和 y 都是一个常数量,不会影响内存空间的分配;
② 以下代码的空间复杂度:O(n)
这个空间复杂度取决于 newArray 这个数组的长度;
③ 以下代码的空间复杂度:O(n²)
常见的是矩阵
3、常见的空间复杂度
三、总结
【时间空间复杂度】 = 【时间和空间增长的趋势】