算法复杂度

本文主要介绍算法的时间复杂度和空间复杂度。求解时间复杂度需找出基本语句并计算其执行次数数量级,分析时遵循关注主循环、加法和乘法法则等原则,还有最好、最坏和平均情况。空间复杂度是对算法运行中临时占存储空间大小的量度,有节省存储和随规模增大而增大两种情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间复杂度

求解算法的时间复杂度的具体步骤是:

1.找出算法中的基本语句,算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体
2.计算基本语句的执行次数的数量级,只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函数中的最高次幂正确即可,可以忽略所有低次幂和最高次幂的系数。这样能够简化算法分析,并且使注意力集中在增长率

分析时间复杂度的时候遵循以下原则:
1、只关注循环执行次数最多的一段代码;
2、加法法则:总复杂度等于量级最大的那段代码的复杂度;
3、乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积。低阶、常量、系数三部分都可以忽略

如果算法的执行时间不随着问题规模n的增加而增长,即使算法中有上千条语句,其执行时间也不过是一个较大的常数。此类算法的时间复杂度是O(1)

某个特定的数据集能让算法的执行情况极好,这就是最「最好情况」,而另一个不同的数据会让算法的执行情况变得极差,这就是「最坏情况」。不过在大多数情况下,算法的执行情况都介于这两种极端情况之间,也就是「平均情况」。

空间复杂度

空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度

有的算法只需要占用少量的临时工作单元,而且不随问题规模的大小而改变,我们称这种算法是原地进行的,是节省存储的算法

有的算法需要占用的临时工作单元数与解决问题的规模n有关,它随着n的增大而增大,当n较大时,将占用较多的存储单元

web应用优先以空间换时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值