- C语言程序设计
- 徐凤生 黄超 谢玉华编著
- 578字
- 2025-04-17 10:56:38
1.2.2 算法的特征
具体地说,算法就是对特定问题求解步骤的一种描述,是指令的有限序列。其中,每个指令表示一个或多个操作。
一个算法必须满足以下5个重要特性:
(1)有穷性。对于任意一组合法输入值,在执行有穷步骤之后一定能结束,即算法中的每个步骤都能在有限时间内完成。
(2)确定性。对于每种情况下所应执行的操作,在算法中都有确切的规定,使算法的执行者或阅读者都能明确其含义及如何执行。并且,在任何条件下,算法都只有一条执行路径。
(3)可行性。算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现之。
(4)有输入。作为算法加工对象的量值,通常体现为算法中的一组变量。有些输入量需要在算法执行过程中输入,而有的算法表面上可以没有输入,实际上已被嵌入算法之中。
(5)有输出。它是一组与“输入”有确定关系的量值,是算法进行信息加工后得到的结果,这种确定关系即为算法的功能。
算法与程序是两个不同的概念,两者之间既有联系又有区别。一个程序不一定满足有穷性。例如,操作系统,只要整个系统不被破坏,它就永远不会停止。即使没有作业需要处理,它仍处于动态等待中。因此,操作系统不是一个算法。另一方面,程序中的指令必须是机器可执行的,而算法中的指令则无此限制。算法代表了对问题的解,而程序则是算法在计算机上的特定的实现。一个算法若用程序设计语言来描述,则它就是一个程序。