什么是好的算法?
正确性
- 符合语法,能够编译链接、链接
- 能够正确处理 简单的 输入
- 能够正确处理 大规模的 输入
- 能够正确处理 一般性的 输入
- 能够正确处理 ** 退化的** 输入
- 能够正确处理 任意合法的 输入
健壮性
- 能辨别不合法的输入并做适当处理,而不致非正常退出
可读性
结构化+准确命名+注释
效率
尽可能地快;存储空间尽可能少
- Algorithms + Data Structures = Programs
(Algorithms + Data Structures) *Efficiency = Computation