真的仔细到不能再仔细了!!!!!

冒泡排序的原理
  从第一个数开始,依次往后比较,如果前面的数比后面的数大就交换,否则不作处理。这就类似烧开水时,壶底的水泡往上冒的过程。
  冒泡排序分从大到小和从小到大两种排序方式。它们的唯一区别就是两个数交换的条件不同,从大到小排序是前面的数比后面的小的时候交换,而从小到大排序是前面的数比后面的数大的时候交换。我这里只说 从小到大的排序方式。

冒泡排序过程
以该一维数组为例:

int[] values = {3,6,4,55,45,154,0,41,12};

第一轮冒泡

图①为第一轮"冒泡"中数据的起始顺序柱形图,只要满足条件:“前一个元素比后一个元素大,则交换位置顺序,否则不交换”。

array[0]=55 > array[1]=33,条件满足,交换元素的位置顺序,如图②所示;
 array[1]=55 > array[2]=22,条件满足,交换元素的位置顺序,如图③所示;
 array[2]=55 < array[3]=66,条件不满足,不交换元素的位置顺序,如图③所示;
 array[3]=66 > array[4]=11,条件满足,交换元素的位置顺序,如图④所示;

第一

Java冒牌排序从大到小_Java冒牌排序从大到小

轮"冒泡"演示如图所示:

第二轮冒泡

图④为第二轮"冒泡"中数据的起始顺序柱形图;

array[0]33 > array[1]=22,条件满足,交换元素的位置顺序,如图⑤所示;
 array[1]33 < array[2]=55,条件不满足,不交换元素的位置顺序,如图⑤所示;
 array[2]55 > array[3]=11,条件满足,交换元素的位置顺序,如图⑥所示;

第二轮"冒泡"演示如图所示:  

Java冒牌排序从大到小_交换元素_02

第三轮冒泡

图⑥为第三轮"冒泡"中数据的起始顺序柱形图;

array[0]=22 < array[1]=33,条件不满足,不交换元素的位置顺序,如图⑥所示;
 array[1]=33 >

Java冒牌排序从大到小_交换元素_03

 array[2]=11,条件满足,交换元素的位置顺序,如图⑦所示;

第三轮"冒泡"演示如图所示:

第四轮冒泡

图⑦为第四轮"冒泡"中数据的起始顺序柱形图;

array[0]=22 > array[1]=11,条件满足,交换"22"和"11"的位置顺序,如图⑧所示;

第四轮"冒泡"演示如图所示:


Java冒牌排序从大到小_冒泡排序_04

 到这里,那么我们的冒泡排序就实现了

具体代码实现

Java冒牌排序从大到小_冒泡排序_05

结果显示

Java冒牌排序从大到小_冒泡排序_06