本质上是一个函数,用O表示,比如O(1)、O(n)、O(n)…… ,用来定性描述该算法在运行过程中临时占用存储空间的大小。

    O(1)的程序👇

    1. let i = 0
    2. i += 1

    该代码只声明了单个变量,单个变量占用的内存永远是1是恒定的,所以空间复杂度为O(1)

    O(n)的程序👇

    1. const list = []
    2. for(let i = 0; i < n; i++){
    3. list.push(i)
    4. }

    这段代码中,list被存入了n个值,这n个值就占用了n个单元,因此其空间复杂度为O(n)

    O(n)的程序👇
    矩阵(二维数组)就是典型的O(n)

    1. const matrix = []
    2. for(let i = 0; i < n; i++){
    3. matrix.push([])
    4. for(let j = 0; j < n; j++){
    5. matrix[i].push(j)
    6. }
    7. }