效率较高的冒泡排序

<span style="font-size:14px;">
import java.util.Arrays;  
public class BubbleSort {  
    public int[] sort(int[] source){  
        int[] dest=new int[source.length];  
        System.arraycopy(source, 0, dest, 0, source.length);  
        boolean change=true;  
        int temp=0;  
        //外层循环的退出条件是全部比较结束(i>=1),或一趟比较中没有发生位次的改变(change==false)  
        for(int i=dest.length-1;i>=1&&change;i--){  
            change=false;  
            for(int j=0;j<i;j++){  
                if(dest[j]>dest[j+1]){  
                    temp=dest[j];  
                    dest[j]=dest[j+1];  
                    dest[j+1]=temp;  
                    change=true;  
                }  
            }  
        }  
        return dest;  
    }  
    /** 
     * @param args 
     */  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        BubbleSort bubbleSort=new BubbleSort();  
        int[] source=new int[]{2,5,1,4,9,12,10,7,25};  
        int[] dest=bubbleSort.sort(source);  
        for(int i=0;i<dest.length;i++){  
            System.out.println(dest[i]);      
        }  
    }  
}  </span>

posted @ 2015-05-27 11:06  指尖尚的跳跃  阅读(99)  评论(0编辑  收藏  举报