算法的复杂度度量--时间复杂度以及空间复杂度

本文探讨了为何需要衡量算法的时间复杂度和空间复杂度,它们是评价算法性能的重要标准。时间复杂度关注算法处理大规模问题时的效率,通常通过大O记号描述最坏情况下的渐进上界。空间复杂度则与算法执行基本操作所需存储空间相关,时间复杂度是其上界。文章还介绍了典型的时间复杂度级别,并强调在实际分析中如何确定T(n)和简化问题。
摘要由CSDN通过智能技术生成

数据结构和算法课程上都有关于时间复杂度的分析,但是自己一直都是一知半解,似乎懂却又不能解释清楚。希望这篇博客作为自己记录成长的开端!

为什么要有时间复杂度以及空间复杂度

评价一个算法有几大标准,主要包括Correctness(正确性),Amount of work done(工作量),Amount of space used(使用空间),Simplicity(简单性),Optimality(最优性)

其中正确性涉及到数学证明;工作量表示整个算法要干多少活,与机器以及输入密切相关,通过基本操作的数目来衡量,此时与时间复杂度相关联;使用空间即空间复杂度,至于简单性和最优性则属于算法的优化部分。

时间复杂度

衡量一个算法好坏最直接的,最容易想到的也就是该算法的计算速度,所需的计算时间,然而计算时间与很多因素相关,选择影响最大,最关键的因素-问题的规模(问题的输入规模)来进行考虑,将特定算法处理规模为n的问题所需的时间记为T(n)。

即使输入规模相同,输入的顺序也会影响计算时间(可以联想排序算法不同输入情况)时间复杂度分为3种情况:最好情况Tbest,Tave,Tworst。简化问题,往往考虑Tworst,即最坏情况下的时间复杂度。并考虑大规模问题,注重时间复杂度随问题规模扩大的总体变化趋势(渐进分析)(类似数学中的极限),引入大O记号来表示T(n)的渐进上界。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值