Java冒泡排序详解

     突然想着写一波Java的常用排序算法,有需要的小伙伴可以关注我一波,我陆续会出Java的常用排序算法。

1. 冒泡排序原理:将被排序的记录数为n的数组r垂直排列,从上往下扫描该数组r,两两相邻的比较,排序逆序就交换,第一次扫描整个数组,数值最大的最后会交换r[n-1]位置上,第二次数值最大的最后会交换r[n-2]位置上,依次类推

简单举例:初始排序:9 7 8 3     第一趟排序结果:7 8 3 9

第二趟:7 3 8 9  第三趟:3 7 8 9

2. 代码

public class suanfa {
public static void maoPao(int array[]){
int temp;
boolean flag=true;

for(int i=1,size=array.length;i<size&&flag;i++){

flag = false;

for(int j=0;j<size-i;j++){
if(array[j]>array[j+1]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
flag=true;
}
}
}
for(int j:array){
System.out.print(j+" ");
}
}

      public static void main(String args[]){
      int a[]={52,39,67,95,70,8,25,52};
      maoPao(a);
      }

}

代码解析:整个冒泡排序最多进行n-1遍,如果在其中一趟两两比较中,一次交换都没有发生,表明数组有序,即给flag赋值为false。

运行结果:8 25 39 52 52 67 70 95 

扫描二维码关注公众号,回复: 1690618 查看本文章

感觉这篇文件对你有点帮助的话,希望你点个赞,谢谢。

猜你喜欢

转载自blog.csdn.net/qq_40135955/article/details/80297092