本质上是一个函数,用O表示,比如O(1)、O(n)、O(logN)…… ,用来定性描述该算法的运行时间

    image.png

    O(1)的程序👇

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

    该代码逻辑只执行一次,时间复杂度为O(1)

    O(n)的程序👇

    1. for(let i = 0; i < n; i++){
    2. console.log(i)
    3. }

    该代码逻辑执行n次,时间复杂度为O(n)

    O(1) + O(n) = O(n)👇

    1. let i = 0
    2. i += 1
    3. for(let i = 0; i < n; i++){
    4. console.log(i)
    5. }

    O(n) * O(n) = O(n)👇

    1. for(let i = 0; i < n; i++){
    2. for(let j = 0; j< n; j++){
    3. console.log(i,j)
    4. }
    5. }

    O(logN)👇

    let i = 1
    while(i < n){
        console.log(i)
      i *= 2
    }
    

    这段代码其实就是不断在求2的多少次方等于n,即求logn,所以该算法的时间复杂度为O(logN)