2020 算法时间复杂度和空间复杂度(补)

algorithms_rogramming.jpg

今天我们继续把时间复杂度这件来说清楚,在今天硬件条件下我们更重视时间复杂度,所以有人提到用空间来换时间,毕竟时间是宝贵的。在算法中,时间复杂度度是一个单位,而不是具体用的时间,这一点希望大家一定要清楚,我们通过不同量级(单位)来衡量单位。例如我们平时使用时间单位,时、分和秒,而不是具体用了几个小时。
而不是具体给出某一个算法具体耗时。这一点对于初学者可能是比较confusing

常数阶

console.log("hello world")

这里执行一个操作就是 一个常数操作,输出三次 HelloWorld 也只算 这里 1 表示常数单位而不是具体数字 1 的意思。

线性阶

var N = 10;

for(let i = 0; i < N; i++){
    console.log("hello world");
}

这里有一个循环说明执行 helloWord 输出操作与 N 有关所以记做

平方阶

for(let i =0; i < N; i++){
    for(let j=0; j< N; j++){
        console.log(i)
    }
}

立方阶

for(let i =0; i < N; i++){
    for(let n=0; n< N; n++){
        for(let m =0; m < N; m++){
            console.log(i)
        }
    }
}

到现在大家不难发现就是有几层 for 循环,时间复杂度就是 n 的几次方。

对数阶

var N = 32
while(N > 0){
  console.log("hello world")
  N = N/2
}

这里我们要说一件事,就是这个 要远远小于 只要我们记住

var N = 100
for(let i=1; i

你可能感兴趣的:(2020 算法时间复杂度和空间复杂度(补))