冒泡排序

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);
  
 }

}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值