【时间和空间复杂度】

文章详细阐述了时间复杂度和空间复杂度的概念,作为衡量算法效率的重要指标。通过大O的渐进表示法,解释了如何分析算法运行时间和所需内存。并提供了多个经典案例来说明不同复杂度级别的算法,强调在优化代码时关注基本操作的执行次数和变量的使用。
摘要由CSDN通过智能技术生成

🌠作者:@TheMythWS.

🎇座右铭:不走心的努力都是在敷衍自己,让自己所做的选择,熠熠发光。

2827571cf2b64d4d888d51d8de87fd7b.png

 

目录

👉时间复杂度

     空间复杂度👈


 

时间复杂度

时间复杂度的定义:

        在计算机科学中,算法的时间复杂度是一个数学函数,它定量描述了该算法的运行时间。一个 算法执行所耗费的时间,从理论上说,是不能算出来的,只有你把你的程序放在机器上跑起来,才能知道。但是我们需要每个算法都上机测试吗?是可以都上机测试,但是这很麻烦,所以才有了时间复杂度这个分析方式。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。

大O的渐进表示法:

b0c43146b0ac4a7c95b88d415002c945.png

经典案例: 

例1:

723cbe8c0db9441dac5c78a2241d6258.png

e1963e6e22804b9683b3b9e6e8d8cc2a.png

例2:

4f6ea38e58a14902a8a2f3e0ddcda702.png

例3:

0e4062fee9d84c7fade81ae09dbc509f.png

例4:

71a68e85c66a417daf37913b86b889b7.png

例5:

938fc5f657a44e32a00c739a3be9d5fe.png

例6:

491806cada9943d8bf22cc6d01d4cbe8.png

例7:

f9fe80d83b114525ac74a1d636daacee.png

例8:

17e4b014f37b4df9959091ed697e7d75.png

例9:

c0ebdf320ce749fd92221d6daa6c7776.png

3092eae0eb2e47dbab52c9c653ff0e09.png

方法:
1、用常数1取代运行时间中的所有加法常数。 
2、在修改后的运行次数函数中,只保留最高阶项。
3、如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。
总结:

41cf5e1f1bb843b0afd98e893a2607ed.png

空间复杂度

        空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度 。空间复杂度不是程序占用了多少bytes的空 间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。空间复杂度计算规则基本跟时间复杂度类似,也使用大O渐进表示法

经典案例:

例1: 

a96ec515511d48c68077707d31a05f04.png

例2:

97f060e4ae7e46f4b437c78d2cdd18c4.png

例3:

f4ab89dfcd6d4bb086b9cf361a58c6af.png

例4:

3ff5903ae51c498990cb1ebd97f1ffd2.png

常用的公式:

4ef42c11856545538042382e428d418e.png

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TheMythWS

你的鼓励,我的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值