5.1.3
多重循环程序设计举例
前面讨论的循环问题都是只包含一个循环过程的,因此它只依赖于一个参数来控制循环的执行和结束,这种循环称为单重循环。但在实际应用中,一个计算过程可能要依赖几个互相独立变化的参数,这就需要在一个循环过程中再包含一个循环过程,形成外层循环嵌套内层循环的结构形式,这种程序就称为多重循环程序。
多重循环程序设计的基本方法和单重循环程序设计是一致的,应分别考虑各层循环的控制条件及其程序实现,相互之间不能混淆。另外要注意在每次通过外层循环再次进入内层循环时,初始条件必须重新设置。例5.6就是一个实现数组整序的二重循环的例子。
例5.6 有一个首地址为A的N字数组,请编制程序使该数组中的数按照从小到大的次序整序。
这里采用起泡排序算法实现数组整序。从第一个数开始依次对相邻两个数Ki和Ki+1进行比较,若Ki≤Ki+1,Ki的位置不动,Ki+1继续和Ki+2比较;若Ki>Ki+1,则两者交换位置,Ki+1(交换前的Ki)继续和Ki+2比较。
动画一表示了起泡排序算法的一个实例。可以看出,在第一遍比较了N-1次后,最大的数已经放到了最后,所以在第二遍时,只需比较N-2次;同样道理,第三遍只需比较N-3次等等。如果有N个数,最多要比较N-1遍。
起泡排序算法的框图如动画二所示。
|