算法-时间和空间复杂度理解

110 阅读1分钟

时间复杂度

由T(n)转化为O(n)的过程

主要关注遍历过程中,内层代码执行的次数(需要计算)

目测

一层遍历时间复杂度 O(n)

两层遍历时间复杂度 O(n^2)

image.png

nm的二位数组遍历的时间复杂度为O(nm)

常见的时间复杂度

O(1)O(logn)O(n)O(nlogn)O(n^2)O(n^3)O(2^n)

空间复杂度

算法执行过程中,产生的临时占用内存空间的大小

常见的空间复杂度

O(1)O(n)O(n^2)

在算法执行过程中,函数对内存的占用量是恒定的,则空间复杂度是O(1)

在算法执行过程中,如果需要新建一个大小为n的数组,则空间复杂度是O(n)

在算法执行过程中,如果需要新建一个大小为n*n的数组,则空间复杂度是O(n^2)