是规则的有限集合,是为解决特定问题而规定的一系列操作。
不是程序,优于程序。
有限性、确定性、可行性、输入特性、输出特性
有限步骤、有限时间、非死循环
每个步骤确定、无二义性
例如:继承父母双亲某一方法
精确进行、有限次可实现
例如:0.1+0.000000000001=?
例如:32767+1=?
0个输入实质隐含基础输入
正确、可读、健壮、高效、低耗
算法正确的三个层次:
① 几组输入,结果满足
② 典型、苛刻输入亦满足
③ 一切合法输入均满足
衡量标准:第二层
举例3:求n个数最大值,下列算法正确性如何?
max=0;
for (i=1; i<=n; i++)
{
scanf(“%f”,&x);
if(max<x) max=x;
}
清晰第一,效率第二;注释必不可少
对非法输入的抵抗能力
高效率:算法执行时间短
低存储量:算法执行过程中所需要的最大存储空间小