冒泡排序

来源:互联网 发布:网易域名管理平台 编辑:程序博客网 时间:2024/05/24 23:16
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);  }} //testpackage 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);   }}


 

原创粉丝点击