1.3 算法的概念及表示方法
1.3.1 算法的概念
算法就是解决问题的步骤序列,它规定了解决某一特定问题的一系列运算。通俗地说,为解决问题而采用的方法和步骤就是算法。
1.算法的基本特征
①确定性。在算法的设计中,算法的每个步骤必须要有确切的含义,不允许有模糊的解释,也不能有多义性,即每个操作都应当是清晰的、无二义性的。
②有穷性。指的是算法必须在执行有穷步后结束,而不能陷入死循环。
③有效性。算法中的每个步骤都应当能有效地执行,并得到确定的结果。
④有零个或多个输入。在算法执行的过程中需要从外界取得必要的信息,即输入必要的数据,并以此为基础解决某个特定问题。所谓零个输入是指算法也可以没有输入,此时就需要算法本身给出必要的初始条件(初值)。
⑤有一个或多个输出。设计算法的目的就是要解决问题,算法的计算结果就是输出。没有输出的算法是毫无意义的。一个算法有一个或多个输出,以反映对输入数据加工后的结果。
2.算法的基本要素
算法由操作和控制结构两个要素组成。
(1)对数据对象的运算和操作。
通常,计算机可以执行的基本操作是以指令的形式描述的。一个计算机系统能执行的所有指令的集合称为该计算机系统的指令系统。计算机程序就是按解题要求从计算机指令系统中选择合适的指令所组成的指令序列。在一般的计算机系统中,对数据对象基本的运算和操作有以下四类。
①算术运算:主要包括“加”“减”“乘”“除”“求余”等算术运算。
②关系运算:主要包括“大于”“大于等于”“小于”“小于等于”“等于”“不等于”等关系运算。
③逻辑运算:主要包括“与”“或”“非”等逻辑运算。
④数据传输:主要包括输入、输出、赋值等数据传送操作。
(2)控制结构。
算法的功能不仅取决于所选用的操作,还与各操作之间的顺序有关。在算法中,各操作之间的执行顺序又称算法的控制结构。算法的控制结构给出了算法的基本框架,它不仅决定了算法中各操作的执行顺序,也直接反映了算法的设计是否符合结构化原则。
一般的算法控制结构有三种:顺序结构、选择结构和循环结构。
1.3.2 算法的表示方法
算法的表示方法有很多,如图形化表示的流程图、结构化流程图(N-S图)和类自然语言表示的伪代码等。其中流程图是一种传统的、广泛应用的算法描述工具,也是最常见的算法图形化表达工具,它使用一些图框、流程线来形象、直观地描述算法处理过程。图1.6为算法的三种基本控制结构的执行流程图。

图1.6 三种基本结构流程图