Java冒泡排序实现(详情)

发布于:2023-01-09 ⋅ 阅读:(818) ⋅ 点赞:(0)

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

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

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

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,条件满足,交换元素的位置顺序,如图④所示;
第一轮"冒泡"演示如图所示:


第二轮冒泡
图④为第二轮"冒泡"中数据的起始顺序柱形图;
array[0]33 > array[1]=22,条件满足,交换元素的位置顺序,如图⑤所示;
array[1]33 < array[2]=55,条件不满足,不交换元素的位置顺序,如图⑤所示;
array[2]55 > array[3]=11,条件满足,交换元素的位置顺序,如图⑥所示;
第二轮"冒泡"演示如图所示:

 
 


第三轮冒泡
图⑥为第三轮"冒泡"中数据的起始顺序柱形图;
array[0]=22 < array[1]=33,条件不满足,不交换元素的位置顺序,如图⑥所示;
array[1]=33 > array[2]=11,条件满足,交换元素的位置顺序,如图⑦所示;
第三轮"冒泡"演示如图所示:


第四轮冒泡
图⑦为第四轮"冒泡"中数据的起始顺序柱形图;
array[0]=22 > array[1]=11,条件满足,交换"22"和"11"的位置顺序,如图⑧所示;
第四轮"冒泡"演示如图所示:



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



具体代码实现

结果显示


 

以上部分图片来源于网上,侵权联系删除