算法Chapter1

1. 定义

算法是一个满足下列条件的计算:
  • 有穷性/终止性:有限步内必须停止
  • 确定性:每一步都是严格定义和确定的动作
  • 能行性:每一个动作都能够被精确地机械执行
  • 输入:有一个满足给定约束条件的输入
  • 输出:满足给定约束条件的结果

问题:定义了输入和输出的关系。

问题与算法:一个算法面向一个问题,而不是仅求解一个问题的一个或几个实例。

2. 算法的正确性分析

        一个算法是正确的,如果它对于每一个输入都最终停止,而且产生正确的输出
  • 不正确算法
    • 不停止(在某个输入上)
    • 对所有输入都停止,但对某输入产生不正确结果

  •  近似算法
    • 对所有输入都停止
    • 产生近似正确的解或产生不多的不正确解
  • 算法正确性证明
    • 证明算法对所有输入都停止
    • 证明对每个输入都产生正确结果
    • 程序调试只能证明程序有错,不能证明程序无错误!

3. 算法的复杂性分析 

  • 目的:预测算法对不同输入所需资源量
  • 复杂性测度:时间,空间, I/O等, 是输入大小的函数
  • 用途: 为求解一个问题选择最佳算法最佳设备
  • 度量:
    • 输入大小:设input是问题R的输入集合,R的输入大小是一个函数 F:Input->N,N是正整数集合
      • 矩阵问题的输入大小=矩阵的维数
      • 图论问题的输入大小=图的边数/结点数
    • 时间复杂性:一个算法对特定输入的时间复杂性是该算法对该输入产生结果需要的原子操作或“步”数
      • 时间复杂性是输入大小的函数
      • 假设每一步的执行需要常数时间,实际上每步需要的时间量可能不同
  • 算法分析模型
    • 随机访问模型
      • 单处理机,串行执行,无并发
      • 基本数据类型
      •  基本操作(每个操作常数时间) ​​​​​​​
    • 并行多处理机模型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值