C/C++程序设计教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4.1 算法的特性与要求

算法是指为解决某个特定问题而采取的确定且有限的步骤。一个算法应该具有以下五个特性:

(1)确定性。算法中的每一个规则、每一个操作步骤都应当是确定的,不能有二义性,对于相同的输入应该有相同的输出结果。

(2)有穷性。一个算法必须在执行有限步骤后结束。也就是说,任何算法都必须在有限的时间内完成,而且应该在合理的时间内完成。

(3)有零个或多个输入。算法中可以没有数据输入,也可以同时输入多个需要处理的数据。

(4)有一个或多个输出。一个算法执行结束后必须有结果输出,否则该算法就没有实际意义。

(5)可执行性。算法的每一步操作都应该是可执行的。例如,当B=0时,A/B就无法执行,不符合可执行性的要求。

要设计一个好的算法通常要考虑以下要求:

(1)正确。算法的执行结果应当满足预先规定的功能和性能要求。

(2)可读。一个算法应当思路清晰、层次分明、简单明了、易读易懂。算法主要是为了人的阅读、理解和交流,其次才是机器执行。

(3)健壮。当输入数据不合法时,应能适当地作出反应或进行处理,而不会产生莫名其妙的输出结果。

(4)高效与低存储量。效率指的是算法执行的时间,存储量需求是指算法执行过程中所需的最大存储空间。同一个问题如果有多种算法可以解决,执行时间短的算法效率高,而效率与低存储量需求都与问题的规模有关。