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

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

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

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

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

时间复杂度

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

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

<
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值