算法
- 计算=信息处理
借助某种工具,遵照一定规则,以明确而机械的形式进行
- 计算模型=计算机=信息处理工具
- 所谓算法,即特定计算模型下,旨在解决特定问题的指令序列
输入 待处理的信息(问题)
输出 经处理的信息(答案)
正确性 的确可以解决特定的问题
确定性 任一算法都可以描述为一个由基本操作组成的序列
可行性 每一基本操作都可实现,且在常数时间内完成
有穷性 对于任何输入,经有穷次基本操作,都可以得到输出
好算法
- 正确:符合语法,能够编译、链接
能够正确处理简单的输入
能够正确处理大规模的输入
能够正确处理一般性的输入
能够正确处理退化的输入
能够正确处理任意合法的输入
- 健壮:能够辨别不合法的输入并做适当的处理,而不致非正常退出
- 可读:结构化 + 准确命名 + 注释 + ...
- 效率:速度尽可能快;存储空间尽可能少
Algorithms + Data Structures = Programs // N.wirth,1976
(Algorithms + Data Structures) × Efficiency = Computation