2.4 算法的特性
为了能编写程序,必须学会设计算法。不要以为任意写出的一些执行步骤就构成一个有效且好的算法。一个有效算法应该具有以下特点:
- 有穷性 。一个算法应包含有限的操作步骤,而不能是无限的。
实际上,“有穷性” 往往指 “在合理的范围之内” 。如果让计算机执行一个历时 1000 年才结束的算法,这虽然是有穷的,但超过了合理的限度,人们也不把它视为有效算法。究竟什么算 “合理限度” ,由人们的常识和需要判定。
- 确定性 。算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。
算法的含义应当是唯一的,而不应当产生 “歧义性” 。所谓 “歧义性” ,是指可以被理解为两种(或多种)的可能含义。
- 有零个或多个输入 。所谓输入是指在执行算法时需要从外界取得必要的信息。
一个算法也可以没有输入。
- 有一个或多个输出 。算法的目的是为了求解。“解” 就是输出。
算法的输出并不一定就是计算机的打印输出或屏幕输出,一个算法得到的结果就是算法的输出。没有输出的算法是没有意义的。
- 有效性 。算法中的每一个步骤都应当能有效地执行,并得到确定的结果。
对于一般最终用户来说,他们并不需要在处理每一个问题时都要自己设计算法和编写程序,可以使用别人已设计好的现成算法和程序,只须根据已知算法的要求给予必要的输入,就能得到输出的结果。