1. 算法的内容及特性
- 输入:待处理的信息(问题)
- 输出:经处理的信息(答案)
- 正确性:的确可以解决指定的问题
- 确定性:任一算法都可以描述为一个由基本操作组成的序列
- 可行性:每一操作都可实现
- 有穷性:在常数时间内完成
程序 = 算法 + 数据结构
2. 衡量算法的方法
衡量一个算法的好坏,可以从算法的正确性、健壮性、可读性和效率上进行分析:
- 正确性包括程序的语法、编译以及程序能够处理正确的输入输出;
- 健壮性即程序能够对不合法的输出进行适当的处理,而不至非正常退出;
- 可读性则为代码的结构化和命名等编程规范;
- 最重要的一点是算法的效率,效率包括两方面,一是时间,一是空间;
3. 算法复杂度分析的主要方法(大O表示法)
(1)迭代:级数求和
(2)递归:递归跟踪 + 递归方程式
(3)猜测 + 验证
笔记出处:《清华大学-邓俊辉MOOC数据结构与算法全套》