预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

冒泡排序的原理以及java代码实现冒泡排序的原理以及java代码实现冒泡排序的原理以及java代码实现概述冒泡排序是一种简单的排序算法。它重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的开始。简单点说,就是:冒泡排序是將比較大的數字沉在数组的后面(可以理解为下面),较小的浮在前面(上面)。直观释义图:步骤比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的`元素重复上面的步骤,直到没有任何一对数字需要比较。实例原始数据:35262第一轮比较3和5,5大于3,不需交换35262继续比较5和2,5大于2,交换位置32562继续比较5和6,6大于5,不需交换32562继续比较6和2,6大于2,交换位置325266下沉到最后,两个2都分别向上(前)冒出。第二轮比较3和2,3大于2,交换位置23526比较3和5,5大于3,不需交换23526比较5和2,5大于2,交换位置23256不需比较5和6第三轮比较2和3,3大于2,不需交换23256比较3和2,3大于2,交换位置22356不需比较了第四轮比较2和2,不需交换22356四轮结束22356代码实现(Java)packagecom.coder4j.main.arithmetic.sorting;publicclassBubble{/***冒泡排序**@paramarray*@return*/publicstaticint[]sort(int[]array){inttemp;//第一层循环表明比较的轮数,比如length个元素,比较轮数为length-1次(不需和自己比)for(inti=0;i<array.length-1;i++){System.out.println("第"+(i+1)+"轮开始");//第二层循环,每相邻的两个比较一次,次数随着轮数的增加不断减少,每轮确定一个最大的,不需比较那个最大的for(intj=0;j<array.length-1-i;j++){if(array[j+1]<array[j]){temp=array[j];array[j]=array[j+1];array[j+1]=temp;}System.out.println("第"+(i+1)+"轮,第"+(j+1)+"次比较:");for(intk:array){System.out.print(k+"");}System.out.println();}System.out.println("结果:");for(intk:array){System.out.print(k+"");}System.out.println();}returnarray;}publicstaticvoidmain(String[]args){int[]array={3,5,2,6,2};int[]sorted=sort(array);System.out.println("最终结果");for(inti:sorted){System.out.print(i+"");}}}测试输出结果:第1轮开始第1轮,第1次比较:35262第1轮,第2次比较:32562第1轮,第3次比较:32562第1轮,第4次比较:32526结果:32526第2轮开始第2轮,第1次比较:23526第2轮,第2次比较:23526第2轮,第3次比较:23256结果:23256第3轮开始第3轮,第1次比较:23256第3轮,第2次比较:22356结果:22356第4轮开始第4轮,第1次比较:22356结果:22356最终结果22356经测试,与实例中结果一致。