java 冒泡排序

java 冒泡排序

只要有一轮没有发生交换,说明数据的顺序已经排好,没有必要继续进行循环下去了。

 

public static void main(String[] args) {
    int[] arr = {1,3,5,7,9,2,4,6,8,0};
    sort(arr);
}

public static void sort(int[] arr){
    boolean flag;
    for (int i = 0; i < arr.length-1; i++) {
        flag = false;//是否交换位置
        for (int j = 0; j <arr.length-1-i; j++){
            if (arr[j] > arr[j+1])
                change(arr,j,j+1);
            flag=true;
        }
        if (!flag)
            break;
    }
}

public static void change(int[] arr,int x,int y){
    int temp = arr[x];
    arr[x] = arr[y];
    arr[y] = temp;
}