C语言实例解析精粹学习笔记——44(冒泡排序)

冒泡排序,从序列的最后一个元素与前一个元素比较大小,如果R[n-1]>R[n]则交换两个元素的位置(R[0]作为临时存放区)将最小的数据交换到R[1],第二次循环将第二小的数交换到R[2]。通过增加exchange变量来检查是否交换了位置,如果没有交换位置的话就表示数据是有序的,不需要再进行交换排序了,结束排序。

书中核心代码如下所示:

 1 void Bubble_Sort(int n)
 2 {
 3     int i,j;
 4     int exchange;
 5     for(i=1; i<n; i++)
 6     {
 7         exchange = 0;
 8         for(j=n-1; j>=i; j--)
 9         {
10             if(R[j+1] < R[j])
11             {
12                 R[0]     = R[j+1];   //R[n]是全局变量,要进行排序的序列
13                 R[j+1]   = R[j];
14                 R[j]     = R[0];
15                 exchange = 1
16             }
17         }
18         if(!exchange) return;
19     }
20 }

 

posted @ 2019-05-05 14:59  llccbb1  阅读(199)  评论(0编辑  收藏  举报