评估算法的“时间复杂度”与“空间复杂度”

本文探讨了在计算机科学中评估算法效率的方法,重点介绍了如何通过忽略常数和次要项来确定算法的主项,进而分析算法的时间复杂度。通过具体示例说明了如何对比不同算法的优劣。

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

温故。

分析一个算法的优劣,需要考虑当输入非常大的情况下,算法的“时间复杂度”和“空间复杂度”的算法计算量的变化趋势。如果输入比较小,那就没有比较算法的必要了。而且算法的估计也只是一种抽象比较方法,相对于高级语言而言。

关注算法 —— 主项

在判断一个算法的效率时,函数中的【常数】和其他次要项,通常可以忽略不计,重点关注【主项】(最高项——计算次数最高的那部分)的阶数(幂)。

示例一:

算法A : 2n^2 , 算法B : 3n+1 , 算法C : 2n^2+3n+1 。 具体来分析一下这3个算法。 (一)算法A 中 2n^2 则幂为2 ,则算法A的【主项】为2n^2; (二)算法B 中 3n+1 , 3n 这部分的幂为1,1这部分的幂为0,则算法B的【主项】为3n; (三)算法C : 2n^2+3n+1 , 2n^2 的幂为2,3n这部分的幂为1,1这部分的幂为0,则算法C的【主项】为2n^2;

忽略常数和次要项

当输入非常大时,【常数】和【次要项】相较于【主项】的结果差距巨大,完全可以忽略不计。按照这种理论,则【示例一】的算法,最后考虑的项如下:
1. 算法A : n^2;
2. 算法B : n(最优);
3. 算法C : n^2;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值