- 数据结构与算法(Python版)
- 周元哲编著
- 859字
- 2021-12-15 16:52:44
1.5 算法表示方式
程序设计采用自然语言描述容易产生二义性,即歧义。例如,英文单词“doctor”的汉语含意是“博士”或“医生”,需要根据“doctor”所处的语境决定其含义。为了让算法表示的含义更为准确,往往采用流程图、N-S图和伪语言等。
1.5.1 流程图
流程图是描述算法最常用的一种方法,通过几何框图、流向线和文字说明等流程图符号表示算法。流程图具有以下优点。
● 采用简单规范的符号,画法简单。
● 结构清晰,逻辑性强。
● 便于描述,容易理解。
流程图如图1.7所示,主要采用以下符号进行问题的描述。
● 起止框用于流程的开始和结束。
● 输入框向程序输入数据,输出框用于程序向外输出信息。
● 箭头用来控制流向。
● 执行框又称为方框,用于表示一个处理步骤。
● 判别框又称菱形框,用于表示一个逻辑条件。
【例1-5】流程图举例。
【题意】求最大公约数,流程图如图1.8所示。
图1.7 流程图基本符号
图1.8 求最大公约数的算法
1.5.2 N-S图
1973年美国学者I.Nassi和B.Shneiderman提出了一种新的流程图形式,称为N-S图。N-S图删除了带箭头的流程线,避免了流程无规律随意转移。N-S图如图1.9所示。
● 顺序结构:语句1、语句2和语句3这3个框组成一个顺序结构。
● 选择结构:当“条件”成立时执行“选择体1”操作,“条件”不成立则执行“选择体2”操作结构。
图1.9 N-S结构流程图基本元素框
● 循环结构:循环结构分为当型循环结构和直到型循环结构两种。
● 当型循环结构。先判断后执行,当“循环条件”成立时反复执行“循环体”操作,直到“循环条件”不成立为止。
●直到型循环结构。先执行后判断,当“循环条件”不成立时反复执行“循环体”操作,直到“循环条件”成立为止。
图1.10 N-S结构流程图
【例1-6】N-S图举例。
【题意】求整数1~n之和不超过10000时n的最大值,N-S图如图1.10所示。
1.5.3 伪语言
伪语言(Pseudocode)也称伪代码,介于自然语言和计算机语言之间,并不是真正存在的编程语言。伪代码综合使用多种编程语言中的语法、保留字,甚至会用到自然语言,不采用图形符号,因此书写方便、格式紧凑,便于向计算机编程语言(如Pascal、C和Java等)过渡。
【例1-7】伪代码举例。
【题意】输入3个数,打印输出其中最大的数。伪代码如下所示。