冒泡排序



public class 冒泡排序 {


/**
* 是一类具有“交换”性质的排序方法。
* 依次比较,将最大的元素置于序列底部。
* 比较n-1次
*/
public static void main(String[] args) {
int [] a = {2,3,6,7,8,9,0};
bubblesort2(a);
}

static void bubblesort(int arr[]){
int temp,flag =1;
for( int i=arr.length-1;i>=0 && flag==1;i--){ //执行n-1趟排序
flag = 0;
for(int j=0;j<i;j++){
if(arr[j]>arr[j+1]){   //数据交换条件
temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
flag = 1; //发生数据交换,flag值为1
}
}
System.out.print("第"+i+"次排序结果:");
for(int k=0;k<arr.length;k++){
System.out.print(arr[k]+" ");
}
System.out.println();
}
System.out.print("最 终 排 序结果:");
for(int k=0;k<arr.length;k++){
System.out.print(arr[k]+" ");
}
}

static void bubblesort1(int arr[]){
int temp,flag =1;
for(int i=0;i<arr.length&&flag ==1;i++){
flag = 0;
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
flag =1;
}
}
System.out.print("第"+i+"次排序结果:");
for(int k=0;k<arr.length;k++){
System.out.print(arr[k]+" ");
}
System.out.println();
}
System.out.print("最 终 排 序结果:");
for(int k=0;k<arr.length;k++){
System.out.print(arr[k]+" ");
}
}

public static void bubblesort2(int[] a){
for (int i= 0; i< a.length-1; i++){    //最多做n-1趟排序
         for(int j= 0 ;j< a.length-i-1; j++){    //对当前无序区间score[0......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.print("第" + (i + 1) + "次排序结果:");
              for(int m = 0; m < a.length; m++){
                 System.out.print(a[m] + "\t");
              }
              System.out.println("");
          }
System.out.print("最 终 排 序结果:");
for(int k = 0; k< a.length; k++){
             System.out.print(a[k] + "\t");
         }
}
}

你可能感兴趣的:(java,冒泡排序)