数据结构(C语言实现)
上QQ阅读APP看书,第一时间看更新

1.5.1 算法设计的要求

一个好的算法应该具备以下目标。

1.算法的正确性

算法的正确性是指算法至少应该是输入、输出和加工处理无歧义性,并能正确反映问题的需求,能够得到问题的正确答案。通常算法的正确性应包括以下四个层次:a.算法所设计的程序没有语法错误;b.算法所设计的程序对于几组输入数据能够得到满足要求的结果;c.算法所设计出的程序对于特殊的输入数据能够得到满足要求的结果;d.算法所设计出的程序对于一切合法的输入都能得到满足要求的结果。对于这四层算法正确性的含义,层次d是最困难的,一般情况下,把层次c作为衡量一个程序是否正确的标准。

2.可读性

算法设计的目的首先是人们的阅读、理解和交流,其次才是计算机执行。可读性好有助于人们对算法的理解,晦涩难懂的算法往往隐含错误不易被发现,并且调试和修改困难。

3.健壮性

当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果。例如,计算一个三角形面积的算法,正确的输入应该是三角形的三条边的边长,如果输入字符类型数据则不应该继续计算,而应该报告输入错误,给出提示信息。

4.高效率和低存储量

效率指的是算法的执行时间。对于同一个问题如果有多个算法能够解决,执行时间短的算法效率高,执行时间长的效率低。存储量需求指的是算法在执行过程中需要的最大存储空间。设计算法应尽量选择高效率和低存储量需求的算法。