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

书中核心代码如下所示:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
 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 }

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄