学科分类
目录
数据结构

什么是算法

算法(Algorithm)是解决特定问题的步骤描述,通俗的来讲,算法就是描述解决问题步骤的方法。例如,新学期开学,从家到学校的交通方式这个问题,就有很多解决方案:有的学生乘坐火车,有的学生乘坐汽车,有的学生乘坐飞机,在本市的可能会自己开车或乘坐公共汽车,离学校近的可能会步行来学校。这每一种方案就是一种算法,这么多解决方法就是这么多种算法。

在计算机中,算法也是对某一个问题的求解方法,只是它的表现形式是计算机指令的有序序列,执行这些指令就能解决特定的问题。例如,在高级程序设计语言(如C语言)中,常用的排序算法如选择排序、冒泡排序等,都是用计算机指令编写算法,来解决排序问题。

在程序设计中,算法有三种较为常用的表示方法:伪代码法、N-S结构化流程图和流程图法,用的最多的是流程图法,接下来我们就简单地学习一下算法的流程图法。

流程图是描述问题处理步骤的一种常用图形工具,它由一些图框和流程线组成。使用流程图描述问题的处理步骤,形象直观、便于阅读。画流程图时必须按照功能选用相应的流程图符号,常用的流程图符号如图1所示。

图1 流程图符号

图1所示的流程图符号中,列举了四个图框、一个流程线和一个连接点,具体说明如下:

● 起止框用于表示流程的开始或结束。

● 输入/输出框用平行四边形表示,在平行四边形内可以写明输入或输出的内容。

● 判断框用菱形表示,它的作用是对条件进行判断,根据条件是否成立来决定如何执行后续的操作。

● 处理框用矩形表示,它代表程序中的处理功能,如算术运算和赋值等。

● 流程线用实心单向箭头或直线表示,可以连接不同位置的图框。流程线的标准流向是从左到右和从上到下,可用直线表示,非标准流向的流程线应使用箭头指示方向。

● 连接点用圆形表示,用于流程图的延续。

通过上面的讲解,读者对流程图符号有了简单的认识,下面以一个数组选择排序算法的流程图为例,学习简单的流程图,如图2所示。

图2 选择排序流程图

假设一个数组要从小到大排序,结合流程图来分析选择排序的过程:

第一步,在数组中选择出最小的元素,将它与0角标元素交换,即放在开头第1位。

第二步,除0角标元素外,在剩下的待排序元素中选择出最小的元素,将它与1角标元素交换,即放在第2位。

第三步,依次类推,直到完成最后两个元素的排序交换,就完成了升序排列。

这样根据流程图来编写算法的指令代码,就会变得清晰简单。读者在以后设计算法时,最好先根据设计思路画出算法的流程图,其次分析其可行性,最后再完成代码。

点击此处
隐藏目录