时间复杂度、空间复杂度

一、时间复杂度

1、概念

时间复杂度:计算的是当一个问题量级增加的时间,时间增长的趋势;
O(大O表示法):渐进的时间复杂度时间复杂度、空间复杂度_第1张图片

2、举例

① 以下 for 循环的时间复杂度:O(1 + 3n) = O(n)  

去掉常数,保留最高次项去掉系数为常数的树 

时间复杂度、空间复杂度_第2张图片

② 以下 for 循环的时间复杂度:O( n + n²) = O(n²)  

保留最高次项 

时间复杂度、空间复杂度_第3张图片

② 以下代码的时间复杂度:O(1) 

常数的时间复杂度为 1 

时间复杂度、空间复杂度_第4张图片

③ 以下代码的时间复杂度:O(logN) 

转化为:2^i = n ,那么 logn = i, 所以当前的时间复杂度为 O(logN) 

时间复杂度、空间复杂度_第5张图片

④ 以下代码的时间复杂度:O(nlogN) 

时间复杂度、空间复杂度_第6张图片

⑤ 以下代码的时间复杂度:O(n²) 

时间复杂度、空间复杂度_第7张图片

⑥ 以下代码的时间复杂度:O(nm) 

时间复杂度、空间复杂度_第8张图片

⑦ 大题

3、常见的时间复杂度量级

时间复杂度、空间复杂度_第9张图片

时间复杂度、空间复杂度_第10张图片

排序:

时间复杂度、空间复杂度_第11张图片

4、其他复杂度指标

时间复杂度、空间复杂度_第12张图片

二、空间复杂度

1、概念

计算的是内存空间增长的趋势

2、举例

① 以下代码的空间复杂度:O(1) 

x 和 y 都是一个常数量,不会影响内存空间的分配; 

时间复杂度、空间复杂度_第13张图片

② 以下代码的空间复杂度:O(n) 

这个空间复杂度取决于 newArray 这个数组的长度; 

时间复杂度、空间复杂度_第14张图片

③ 以下代码的空间复杂度:O(n²) 

常见的是矩阵

3、常见的空间复杂度

时间复杂度、空间复杂度_第15张图片

三、总结

【时间空间复杂度】 = 【时间和空间增长的趋势】 

你可能感兴趣的:(算法,数据结构,前端,javascript)