`
jiangzhenghua
  • 浏览: 592625 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java 冒泡排序

阅读更多

冒泡的思想精髓就是数组中相临的两个数依次相比较,如果左边的数小于右边的数,就将两个数的位置交换,然后继续比较,如果不小于,则不做交换,跳出本次循环,继续用下一位置的数与相临的数做比较,依此类推下去。按这种规则找下去,每轮冒泡会将最小的数冒到最后面。如下代码即为降序冒泡法:

public class ArraySort1
{
 public static void main(String[] args){
  int [] a = new int[] {9,3,2,8,10,4,22};

  for(int i = 0 ; i < a.length-1; i++){
   for(int j = 0 ; j < a.length-i-1; j++){
    if(a[j] < a[j+1]){
     int temp = a[j];
     a[j] = a[j+1];
     a[j+1] = temp;
    }
   }
   
   System.out.println("第"+(i+1)+"轮冒泡:");
   for(int k = 0 ; k < a.length; k++){    
    System.out.print(a[k]+"    ");
   }
   System.out.println();
  }
 }
}

输出结果:

H:\javase>java ArraySort1
第1轮冒泡:
9    3    8    10    4    22    2
第2轮冒泡:
9    8    10    4    22    3    2
第3轮冒泡:
9    10    8    22    4    3    2
第4轮冒泡:
10    9    22    8    4    3    2
第5轮冒泡:
10    22    9    8    4    3    2
第6轮冒泡:
22    10    9    8    4    3    2

 

二、升序冒泡写法:

public class ArraySort2
{
 public static void main(String [] args){
  int [] a = new int[]{11,55,12,22,58,28,99};
  
  for(int i = 0 ; i < a.length-1; i++){
   for(int j = 0 ; j < a.length-i-1; j++){
    if(a[j]>a[j+1]){
     int temp = a[j+1];
     a[j+1] = a[j];
     a[j] = temp;
    }
   }
   System.out.println("第"+(i+1)+"次冒泡");
   for(int k = 0 ; k < a.length; k++){
    System.out.print(a[k]+"    ");
   }
   System.out.println();
  }  
 }
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics