算法分析框架

分析框架

  • 时间复杂度:指出正在讨论的算法运行的有多快[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YVgdLSs9-1619089261679)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87%E4%B8%93%E7%94%A8%E6%96%87%E4%BB%B6%E5%A4%B9/image-20210125162612084.png)]

  • 空间复杂度:关心算法需要的额外空间

分析框架概要

  • 算法的时间效率和空间效率都用输入规模的函数进行度量
  • 我们用算法基本操作的执行次数来度量算法的时间效率。通过计算算法消耗的额外存储单元的数量来度量空间效率。
  • 在输入规模相同的情况下,有些算法的效率会有显著差异,对于这样的算法,我们需要区别最差效率,平均效率和最优效率。
  • 本框架关心一点:当算法输入规模趋近于无穷大时,它的运行时间函数的增长次数
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OpAdjGY3-1619089261682)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87%E4%B8%93%E7%94%A8%E6%96%87%E4%BB%B6%E5%A4%B9/image-20210128212811913.png)]

分析非递归算法效率的通用方案:

  1. 决定用哪个参数表示输入规模
  2. 找出算法的基本操作(它总位于算法的最内层循环中)
  3. 检查基本操作的执行次数是否只依赖输入规模。如果它还依赖于一些其他的特性,则最差效率,平均效率以及最优效率就很有必要分别研究
  4. 建立一个算法基本操作执行次数次数的求和表达式
  5. 利用求和运算的标准公式和法则来建立一个操作次数的闭合公式,或者至少确定它的增长次数。

其中我们使用最为频繁的是这两个公式:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xSeRSEIG-1619089261684)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87%E4%B8%93%E7%94%A8%E6%96%87%E4%BB%B6%E5%A4%B9/image-20210128214127275.png)]
以及求和公式:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cncQ9Uv0-1619089261687)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87%E4%B8%93%E7%94%A8%E6%96%87%E4%BB%B6%E5%A4%B9/image-20210128214145466.png)]

分析递归算法效率的通用方案

  1. 决定用哪个参数作为输入规模的度量标准。
  2. 找出算法的基本操作。
  3. 检查一下,对于相同规模的不同输入,基本操作的执行次数是否可能不同,如果有这种可能,则必须对最差效率,平均效率以及最优效率做单独研究。
  4. 对于算法基本操作的执行次数,建立一个递推关系以及相应的初始条件
  5. 解这个递推式,或者至少确定它的解的增长次数。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值