实例1 冒泡法排序
数组中有N个整数,用冒泡法将它们从小到大(或从大到小)排序。
实例解析:
排序是非常重要且很常用的一种操作,有冒泡排序、选择排序、插入排序、希尔排序、快速排序、堆排序等多种方法。这里我们先简单介绍前三种排序算法和代码的实现,其余算法将在后续课程《数据结构》中学习到。
冒泡法排序是C语言教材中已经介绍过的排序方法,与其他排序方法比较起来,冒泡法效率是最低的,但因其算法简单,故也常被采用,其算法是:
(1)从第一个数开始,相邻两个数两两比较,将大的(或小的)交换到后面,然后继续比较第2、3个数…..当比较完最后两个数的时候,最大数(或最小数)便排在最后了。此过程称为“一趟”。
(2)将最大数排除在外,其余数重复步骤1。
(3)重复步骤2,直到所有数都排好为止。
对于有N个数的排序,上面的过程总共需要进行N-1趟。
下面是冒泡法排序的代码:
#include <stdio.h>
#define N 10
int main()
{int a[N] = {3,5,2,9,7,4,8,1,0,6}, i, j, t;
for(i = 0; i < N-1; i++){ //共进行N-1趟
for(j = 0; j < N–i-1; j++) /*已排好的数据不参与比较 */
if(a[j] > a[j+1]){
t = a[j];