算法(algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。
算法的5个重要特性:
1、有穷性 有穷步之后结束,且每一步都可在有穷时间内完成。
2、确定性 每一条指令必须有确切的含义。并且,在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只能得出相同的输出。
3、可行性 算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。
4、输入 零个或多个
5、输出 一个或多个
算法设计的要求:
1、正确性 算法应当满足具体问题的需求,至少应当包括对于输入、输出和加工处理等的明确的无歧义性的描述,设计或选择的算法应当能正确地反映这种需求。
大体可分为4个层次:
a、程序不含语法错误
b、程序对于几组输入数据能够得出满足规格说明要求的结果·
c、程序对于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得出满足规格说明要求的结果
d、程序对于一切合法的输入数据都能产生满足规格说明要求的结果。
2、可读性
3、健壮性 当输入数据非法时,算法也能适当地作出反应或进行处理,而不会产生莫名其妙的输出结果。
4、效率与低存储量需求 效率指的是算法执行的时间。存储量需求是指算法执行过程中所需要的最大存储空间。效率和低存储量需求这两者都与问题的规模有关。