算法效率的量度

时间复杂度

定义

    一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间度量记作T(n)=O(f(n)),它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称时间复杂度。

注意

  • 时间复杂度考虑的只是对于问题规模n的增长率,则难以计算基本操作执行次数时,只需要求出它关于n的增长率即可。
  • 基本操作可以选择多个,来综合比较两个算法。
  • 如果输入数据集不同导致基本操作次数不同,可以估算它们的平均值(但有时不方便计算);还可以在最坏情况下估算最大的次数(普遍采用)。

空间复杂度

定义

     作为算法所需存储空间的量度,记作S(n)=O(f(n)),其中n为问题的规模(或大小)。

注意

  • 输入数据所占空间只取决于问题本身,和算法无关,则需要分析除输入和程序(代码等)之外的额外空间;否则要考虑输入。
  • 原地工作的算法,输入数据所占空间和算法无关,同时该算法所占空间是个常量。

转载于:https://www.cnblogs.com/dann/archive/2013/02/25/2932809.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值