- C语言程序设计
- 徐凤生 黄超 谢玉华编著
- 560字
- 2025-04-17 10:56:38
1.2.3 算法设计的原则
要设计一个“好”的算法,通常应考虑达到以下目标:
(1)正确性。首先,算法应当满足以特定的“规格说明”方式给出的需求。其次,对算法是否“正确”的理解可以有以下4个层次:①程序中不含语法错误;②程序对于几组输入数据能够得出满足要求的结果;③程序对于精心选择的、典型、苛刻且带有刁难性的几组输入数据能够得出满足要求的结果;④程序对于一切合法的输入数据都能得出满足要求的结果。通常以第③层意义的正确性作为衡量一个算法是否合格的标准。达到第④层意义的正确性极为困难,因为对所有的输入数据进行验证不太现实。
(2)可读性。算法主要是为了人的阅读与交流,其次才是为计算机执行,因此算法应该易于人的理解;另一方面,晦涩难读的程序易于隐藏较多错误而难以调试。
(3)健壮性。当输入的数据非法时,算法应当恰当地做出反应或进行相应处理,而不是产生莫名其妙的输出结果。并且,处理出错的方法不应是中断程序的执行,而应是返回一个表示错误或错误性质的值,以便在更高的抽象层次上进行处理。
(4)高效率与低存储量需求。通常,效率指的是算法执行时间。对于同一个问题的多个算法,执行时间短的算法效率高。存储量指的是算法执行过程中所需的最大存储空间。两者都与问题的规模有关。如求100个数的平均数和求10000个数的平均数所花的执行时间和运行空间有一定的差别。