现在的位置: 首页 > 综合 > 正文

冒泡排序

2018年05月23日 ⁄ 综合 ⁄ 共 1125字 ⁄ 字号 评论关闭
package bubblesort;

public class Init {
 //交换
  void Swap(int a[],int x,int y){
   int temp = a[x];
    a[x] = a[y];
    a[y] = temp;
    
  }
  //打印出结�?
  void Print(int a[]){
   for(int x: a){
    System.out.print(x);
   }
  }
  
  //选择排序   选择一个数后,与其余每一数比较。
  public void ChanceSort(int[]a){
   
   for(int i=0;i<a.length-1;i++){
    for(int j=i+1;j<a.length;j++){   
     if(a[i]>a[j]){   
      Swap(a,i,j);   //下面两句代码是为了在控制台上看到排序的整个变化过程。
      Print(a);
      System.out.println("");
     }
    }
   }
   Print(a);
  }
  
  //冒泡排序1
  public void BubbleSortFirst(int a[]){
   
   for(int i=0;i<a.length-1;i++)//循环次数
    for(int j=0;j<a.length-i-1;j++){ 
//-i,是因第i次循环把大的数放到最后,则要比较的个数也相应地减少i,因为最后面的数组已经比较好了,不用再比较。
//-1是因为两两比较次数,因最后一个元素无法两两
     if(a[j]>a[j+1]){
      Swap(a, j, j+1);
      Print(a);
      System.out.println("");
     } 
    }
   Print(a);
  } 
  //冒泡排序2
  public void BubbleSortSecond(int a[]){
   for(int i=0;i<a.length-1;i++){
    for(int j=a.length-1;j>i;j--){
     if(a[j]>a[j-1]){
      Swap(a, j, j-1);
     }
    }    
   } 
   Print(a);
  }
  //冒泡排序3
  boolean flag = true;
  public void BubbleSortThird(int a[]) {
   
   for(int i=0;i<a.length-1;i++){
    flag = false;
    for(int j=a.length-1;j>i;j--){
     if(a[j]>a[j-1]){
      Swap(a, j, j-1);
      flag = true;
     }
    }
   }
   Print(a);
  }
}
 
//test

package test;
import bubblesort.Init;
public class Test {

 public static void main(String[] args) {
  int []array ={9,1,5,8,3,7,4,6,2};
  Init sort = new Init();  
  sort.BubbleSortThird(array);
  
 }

}

 

抱歉!评论已关闭.