首页 > 其他分享 >时间复杂度

时间复杂度

时间:2022-10-27 22:00:41浏览次数:56  
标签:复杂度 while logn 次方 时间 var

时间复杂度概述

在恒定的环境内,他的执行次数和对应的变量的比列构成的值为时间复杂度。时间复杂度是在一定程度上表示当前的程序的运行速度,时间复杂度越低那么运行速度就越快。还有一个就是我们需要考虑的空间复杂度,空间复杂度是指你的程序在运行的时候开辟的内存大小,空间复杂度越低占用的内存就越少(内存不再优先考虑)

时间复杂度的分类及示例

时间复杂度使用字母O来表示 他的对应分类和其执行次数的比列是相关的

O(1) 常数阶

console.log('hello world') //一切没有变量来控制的 只执行一次的代码他属于常数阶 O(1)

 

O(logn) 对数阶

//2 * 2 * 2 100-10求二的对数 log2(n-m) O(logn)
var m = 10
var n = 100
var k = 2
while(m>n){
    m *= k ;
    console.log('hello')
}

 

O(n) 线性阶

//这个的执行次数由对应变量n控制 所以他属于线性阶 O(n)
for(var i=0;i<n;i++){
    console.log('hello world')
}

 

O(nlogn) 线性对数阶

for(var i=0;i<n;i++){
    var m = 10
    var n = 100
    var k = 2
    while(m>n){
        m *= k ;
        console.log('hello')
    }
}

 

O(n平方) 平方阶

for(var i=0;i<n;i++){
    for(var j=0;j<n;j++){
        console.log('hello world')
    }
}

 

O(n的立方) 立方阶

for(var i=0;i<n;i++){
    for(var j=0;j<n;j++){
        for(var k=0;k<n;k++){
            console.log('hello world')
        }
    }
}

 

O(n的k次方) k次方阶

总结

从上可得 循环嵌套不会超过俩次!从对应得时间复杂度来看, 我们可以得到logn和n是比较性常用的, 我们发现logn是比n要快得,所以在后续得优化中我们采用logn级别得时间复杂度来替代n。对于for循环和while循环, 对应得时间复杂度来说while要快于for循环,用while来替代for循环

O(1) > O(logn) 对数阶 >  O(n) 线性阶 > O(n的立方) 立方阶 > O(n的k次方) k次方阶

标签:复杂度,while,logn,次方,时间,var
From: https://www.cnblogs.com/hofenglang/p/16834158.html

相关文章