数据结构与算法——时间复杂度和空间复杂度(1)

1.时间复杂度

在这里插入图片描述
分析:当算法执行n此的时候,观察里面的循环,也是执行n次。所以算法的时间复杂度为O(n)
在这里插入图片描述
分析:找到最内层额的循环,循环n次,往外面找,还嵌套了有一层循环,所以应该是O(n平方 )
在这里插入图片描述
分析:
①找到最内层循环的一个基本语句,假设语句频度(执行次数)为x次,观察变量i的变化,次数(x)	1	2	3	4i	2	4	8	16②所以,观察挑出循环的条件,当,解得③x的数量级O(x)就是时间复杂度T(n)=
在这里插入图片描述
分析:观察最内层循环的基本语句,发现是一个判断,不难发现,当最好的情况时,第一次就找到,只需要执行1次,当最坏情况,需要执行n次,平均就是执行n/2次,所以是O(n)

总结:

在这里插入图片描述

2.空间复杂度

在这里插入图片描述
分析:当程序装入内存的时候,所占空间大小是固定的,与问题规模无关,通过分析,程序需要的辅助空间有局部变量i还有参数n,都是占固定的存储空间,所以空间复杂度S(n)=O(1)
在这里插入图片描述
在这里插入图片描述
分析:与问题规模相关的变量是flag数组,S(n)=O(n的平方)

递归调用带来的内存开销

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例如:从n=5开始执行,每次递归调用会开辟一块空间,每块空间也都有变量abc,开辟的空间是固定的,所以当问题规模大小为n时,就会开辟n块空间,所以S(n)=O(n)
在这里插入图片描述
在这里插入图片描述

总结:

在这里插入图片描述
注意:时间复杂度T(n)=O()表达的意思是执行时间和成正比

3典型例题

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值