算法的表示方法都有哪些类型(算法的表示方法有哪几种)
导语:算法的表示方法都有哪些?
算法的表示方法都有哪些?
算法设计者必须将自己设计的算法清楚、正确地按步骤记录下来,这个过程就叫描述算法。表示一个算法,可以用不同的方法。那么算法的表示方法都有哪些呢?
一个算法有多种表述方式,常见的有自然语言、流程图、N-S图、伪代码、计算机语言等。下面分别进行介绍。
1.自然语言
所谓自然语言,就是日常生活中的语言。它可以是汉语、英语、日语等,一般用于描述一些简单的问题、步骤,可以使算法通俗、简单易懂。下面通过具体实例来介绍自然语言。例如,任意输入三个数,求这三个数中的最大数。
第一步:定义四个变量,分别为x、y、z以及max。第二步:输入大小不同的三个数,分别赋给x、y、z。
第三步:判断x是否大于y,如果大于,则将x的值赋给max,否则将y的值赋给max。
第四步:判断max是否大于z,如果大于,则执行步骤五,否则将z的值赋给max。
第五步:将max的值输出。
自然语言最大的优点就是容易理解,适用于比较简单的问题。对于比较复杂的问题或者在描述包括分支或循环的算法时一般会很冗长,所以不用自然语言描述、表示算法,避免出现二义性。
2.流程图
流程图是一种传统的算法表示法,它用一些图框来代表各种不同性质的操作,用流程线来指示算法的执行方向。由于它简单直观,易于理解,所以应用广泛。常见的流程图符号及流程图的例子如图3.1所示。
其中,起止框是用来标识算法开始和结束的;判断框的作用是对一个给定的条件进行判断,并根据给定的条件是否成立来决定如何执行后面的操作;连接点是将画在不同地方的流程线连接起来。下面通过几个例子来介绍图框的使用方法。例如,求两个整数a和b的最大公约数。流程图如图3.2所示。
判断框两侧的“Y”和“N”代表“是”(yes)和“否”(no)。
经过研究发现,任何复杂的算法,都可以由顺序结构、选择结构和循环结构这三种基本结构组成,这三种基本结构之间可以并列、可以相互包含,但不允许交叉,不允许从一个结构直接转到另一个结构的内部去。
3.N-S图
既然任何算法都是由前面介绍的3种结构组成的,那么各基本结构之间的流程线就成了多余的。N-S流程图(这是由美国人I.Nassi和B.Shneiderman共同提出的,故以他们名字的首字母命名)去掉了原来的所有流程线,将全部的算法写在一个矩形框内。它也是算法的一种结构化描述方法,同样也有三种基本结构。
(1)顺序结构的N-S流程图,如图3.3所示。
(2)选择结构的N-S流程图,如图3.4所示。
例如,输入一个数,判断该数是否是偶数,并给出相应提示。此程序的选择结构的N-S流程图如图3.5所示。
(3)循环结构。当型循环的N-S流程图,如图3.6所示。
例如,程序求1~100之间(包括1和100)所有整数之和的当型循环的N-S流程图如图3.7所示。
直到型循环的N-S流程图,如图3.8所示。
例如,程序求1~100之间(包括1和100)所有整数之和的直到型循环的N-S流程图如图3.9所示
4.伪代码
伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。它采用某一程序设计语言的基本语法,如操作指令,可以结合自然语言来设计。而且,它不用符号,书写方便,没有固定的语法和格式,具有很大的随意性,便于向程序过渡。
下面通过一个例子来介绍如何用伪代码描述算法。
开始
c=a%b;
循环直到c=0
a=b;
b=c;
c=a%b;
输出b;
结束
伪代码虽然不是一种实际的编程语言,但表达能力上类似编程语言,同时避免了描述技术细节带来的麻烦,所以伪代码更适合描述算法,故被称作“算法语言”或“第一语言”。
算法的描述要根据算法的规模和组成特点来选择不同的描述方式。选择合适的描述方式,能够更清晰直接地对算法进行表示。
免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小春创作整理编辑!