简单来说,算法是解决问题的方法与步骤。算法不仅指加减乘除等算术运算,而且包括做任何事情的计算法则,即一个解决问题的通用方法。我们可以把它想象为一个菜谱、一本说明手册、一条公式。例如,想用豆浆机做豆浆,通常步骤如下。
(1)打开豆浆机盖子。
(2)倒入约800mL 的水。
(3)倒入约200g 的黄豆。
(4)盖上盖子。
(5)通电,按“开始”按钮。
(6)等到绿色灯亮,豆浆做好,可以放适量的糖。
通过以上步骤,就解决了做豆浆的问题,这就是一个方法。现实生活中的方法与程序中的算法略有不同,程序算法更为严谨,不会出现描述比较模糊的部分,如约、适量等,它们都是用数学方式来描述,非常精准。算法的5 个特性如下。
(1)输入(Input):算法必须有输入量,用以刻画算法的初始条件(特殊情况下也可以没有输入量,这时算法本身定义了初始状态)。
(2)输出(Output):算法应有一个或一个以上的输出量,输出量是算法计算的结果。没有输出的算法毫无意义。
(3)明确性(Definiteness):算法的描述必须无歧义,以保证算法的实际运行结果精确匹配要求或期望。通常也要求实际运行结果是确定的。
(4)有限性(Finiteness):算法必须在有限个步骤内完成任务。
(5)有效性(Effectiveness):算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现(又称可行性)。
展开