上篇博客咱们讲了选择排序,不难发现,当数据较多时选择排序的效率就很低了。那么有没有另一种排序的方法可以提高一下效率呢?答案是肯定的。下面我们来讲一下冒泡排序。
冒泡排序也是通过两重循环,外层循环和选择排序一样通过n-1次找最小(或最大)值,只是内循环的比较实现方式不同。它是通过n-1次找最大值得方式实现排序的,但是找最大值的方法也不同于选择排序。
冒泡排序找最大值的方式是从第一个元素开始,每相邻的两个元素依次比较,如果前面的数据元素小于后面的,则两者交换。一趟排序后,最大的元素就被放到了最后的位置。剩余的n-1个元素重复上述过程。
代码如下:
1 for(i=0;i<=n-1;i++) 2 { 3 for(j=0;j<=n-i-2;j++) 4 { 5 if(a[j]>a[j+1]) 6 { 7 t=a[j]; 8 a[j]=a[j+1]; 9 a[j+1]=t; 10 } 11 } 12 }