排序之冒泡java版

冒泡排序

 public static void bubbleSort(int []data){
         //循环变量
         int i,j,k;        
         int temp;
         //外层扫描的次数
         for(j=data.length;j>1;j--){

             //内层比较
             for(i=0;i<j-1;i++){
                 if(data[i+1]<data[i]){
                     temp=data[i+1];
                     data[i+1]=data[i];
                     data[i]=temp;
                 }
             }
         }

     }

冒泡排序之改进

public static void bubbleSort(int []data){
         //循环变量
         int i,j,k;        
         int temp;
         //外层扫描的次数

         for(j=data.length;j>1;j--){
             boolean exchange=false;
             //内层比较
             for(i=0;i<j-1;i++){
                 if(data[i+1]<data[i]){
                     temp=data[i+1];
                     data[i+1]=data[i];
                     data[i]=temp;
                     exchange=true;
                 }
             }
             //如若不存在交换了,说明已经有序了
             if(!exchange){
                 break;
             }
         }


     }

方法为static仅为测试:

public static void main(String[] args) {
        int []data={1,2,7,45,8,2,1,-1,0,9,4,3,2,1,67,89,34,23,12};
        bubbleSort(data);
        for(int i=0;i<data.length;i++){
        System.out.println(data[i]);
        }

    }

你可能感兴趣的:(数据结构与算法)