简述时间复杂度和空间复杂度

时间复杂度

时间复杂度讲的是恒定机器中的执行次数和对应的变量的比例 也就是说在恒定机器内执行次数越多 那么时间复杂度越高,那么对应的时间复杂度越高 他的执行效率就越低。将时间复杂度降低那么就可以提高对应的效率。

时间复杂度(用O来表示)跟对应的执行次数成正比

O1 常数阶 每行代码执行一次

console.log('123')//1次
console.log('123')//1次
console.log('123')//1次
console.log('123')//1次

On 线性阶 循环执行多次由一个n变量来控制

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

Ologn 对数阶 由俩个变量来控制的 (递归)

var i = 2
while(i<n){
    i*=k
}

Onlogn 线性对数阶 线性阶包含对数阶

for(var i=0;i<n;i++){
    var j = 2
    while(j<n){
        j*=k
    }
}

On2 平方阶 俩个线性阶包含

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

On3立方阶 3个线性阶

Onk次方 k个线性阶

...

时间复杂度排序

O1<Ologn<On<Onlogn<On^2<On^3<On^k....

空间复杂度

空间复杂度讲的是在内存开辟上 有多个变量内存被同时开辟,开辟的内存越多对应的空间复杂度越高,占用的内存大小就越大。

总结

从上可得 循环嵌套不会超过俩次!从对应得时间复杂度来看 我们可以得到logn和n是比较性常用得 我

们发现logn是比n要快得,所以在后续得优化中我们采用logn级别得时间复杂度来替代n。对于for循环和while循环 对应得时间复杂度来说while要快于for循环,用while来替代for循环

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值