1.1 算法
考点 1 算法的基本概念
计算机解题的过程实际上是在实施某种算法, 这种算法称为计算
机算法。
算法 (algorithm) 是一组严谨地定义运算顺序的规则,并且每一个
规则都是有效的,同时是明确的;此顺序将在有限的次数后终止。算
法是对特定问题求解步骤的一种描述, 它是指令的有限序列, 其中每
一条指令表示一个或多个操作。
1 算法的基本特征
(1)可行性 (effectiveness):针对实际问题而设计的算法, 执行
后能够得到满意的结果。
(2)确定性 (definiteness):算法中的每一个步骤都必须有明确
的定义,不允许有模棱两可的解释和多义性。
(3)有穷性 (finiteness):算法必需在有限时间内做完,即算法
必需能在执行有限个步骤之后终止。
(4)拥有足够的情报 :要使算法有效必需为算法提供足够的
情报当算法拥有足够的情报时, 此算法才最有效的; 而当提供的情报
不够时,算法可能无效。
2 算法的基本要素
(1)算法中对数据的运算和操作:每个算法实际上是按解题
要求从环境能进行的所有操作中选择合适的操作所组成的一组指令
序列。
计算机可以执行的基本操作是以指令的形式描述的。 一个计算机
系统能执行的所有指令的集合, 称为该计算机系统的指令系统。 计算
机程序就是按解题要求从计算机指令系统中选择合适的指令所组成
的指令序列在一般的计算机系统中,基本的运算和操作有以下 4 类:
①算术运算 :主要包括加、减、乘、除等运算;
②逻辑运算 :主要包括“与”、“或”、“非”等运算;
③ 关系运算 :主要包括 “大于”、“小于”、“等于”、“不等于”
等运算;
④数据传输 :主要包括赋值、输入、输出等操作。
(2)算法的控制结构 :一个算法的功能不仅仅取决于所选用的操
作,而且还与各操作之间的执行顺序有关。 算法中各操作之间的执行
顺序称为算法的控制结构。
算法的控制结构给出了算法的基本框架, 它不仅决定了算法中各
操作的执行顺序,而且也直接反映了算法的设计是否符合结构化原
则。描述算法的工具通常有 传统流程图 、N-S 结构化流程图 、算法描
述语言 等。一个算法一般都可以用 顺序、选择、循环 3 种基本控制结
构组合而成。
(3)算法设计的基本方法
计算机算法不同于人工处理的方法, 下面是工程上常用的几种算
法设计,在实际应用时,各种方法之间往往存在着一定的联系。
(1)列举法
列举法是计算机算法中的一个基础算法。列举法的基本思想是,
根据提出的问题, 列举所有可能的情况, 并用问题中给定的条件检验
哪些是需要的,哪些是不需要的。
列举法的特点是算法比较简单。 但当列举的可能情况较多时, 执
行列举算法的工作量将会很大。因此,在用列举法设计算法时,使方
案优化,尽量减少运算工作量,是应该重点注意的。
(2)归纳法
归纳法的基本思想是,通过列举少量的特殊情况,经过分析,最
后找出一般的关系。 从本质上讲, 归纳就是通过观察一些简单而特殊
的情况,最后总结出一般性的结论。
(3)递推
递推是指从已知的初始条件出发,逐次推出所要求的各中间结
果和最后结果。 其中初始条件或是问题本身已经给定,