算法与算法分析
算法是,对特定问题求解方法和步骤的一种描述,它是有限指令的有限序列,其中每个指令表示一个或多个操作。
算法与程序的比较
- 算法是解决问题的一种方法或一个过程,考虑如何将输入转换成输出,一个问题可以有多种算法。
- 程序是用某种程序设计语言对算法的具体实现。
- 程序 = 数据结构 + 算法
算法的特性
一个算法必须具备以下五个重要特性:
- 有穷性 一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。
- 确定性 算法中每一条指令必须有确切的含义,没有二义性,在任何条件下只有唯一的一条执行路径,即对相同的输入只能得到相同的输出。
- 可行性 算法是可执行的,算法描述的操作可以通过已经实现的基本操作执行有限次来实现。
- 输入 一个算法有零个或多个输入
- 输出 一个算法有一个或对个输出
算法设计有正确性(Correctness)、可读性(Readability)、健壮性(Robustness)、高效性(Efficiencyÿ