package com.ds; 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]); } } }