冒泡排序是一种简单的交换排序。这种排序算法在排序的过程中,如果按照升序的规则,值大的元素会逐渐往后靠,值小的元素会逐渐往前靠,最重要的是最大的元素会一直交换到数组的末尾。这一过程就如同碳酸饮料中二氧化碳的气泡最终会浮到顶端,所以被称之为“冒泡排序”。
冒泡排序也可分为有序区和无序区,对于升序排序,其有序区可以在右,也可以在左,两种方式都是类似的,没有多大差异,这里我们使用有序区在左的方式。冒泡的过程就是无序区中的相邻的元素互相比较,较大的元素逐渐“浮”到有序区中去,有序区逐渐扩大,无序区逐渐缩小,使得数组最终有序。由于发生元素交换的依据是前一个元素比后一个元素大,对于大小相同的元素不会发生交换,因此冒泡排序是一种稳定的排序算法。对于降序排序,其实也无需过多地赘述,一路通,路路通。具体细节请直接看代码实现!
代码实现://冒泡排序
public static void bubbleSort(int[] a){
//排序的数组不能为空且至少要有两个元素
if(a == null || a.length < 2){
return;
}
int i,j,temp;
for(i = 0;i < a.length -1;i++){
for(j = 0;j < a.length - i -1;j++){
if(a[j] > a[j + 1]){
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}



