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