第10讲 排序-冒泡排序

83 阅读1分钟

冒泡排序的规则思路:

1.一共进行数组的大小-1次循环

2.每次排序(外层循环)确定一个最大数往右边移动(内层循环 )

3.每一趟排序的数在逐渐减少

代码:

public class BubbleSort {
    public static void main(String[] args) {
        int[] arry={7,6,82,1,-5,9,23,0,45,3};
        bubbleSort(arry);
        for (int i : arry) {
            System.out.print(i+" ");
        }
    }
    
    public static void bubbleSort(int[] arry){
        int temp;
        for (int i = 0; i <arry.length-1 ; i++) {
            for (int j = 0; j < arry.length-1-i; j++) {
                if(arry[j]>arry[j+1]){
                    //比较前后两数 前数大则替换顺序
                    temp=arry[j+1];
                    arry[j+1]=arry[j];
                    arry[j]=temp;
                }
            }
        }
    }
}

优化:

    public static void bubbleSort(int[] arry){
        int temp;
        for (int i = 0; i <arry.length-1 ; i++) {
            boolean flag=false;//假如某次排序没有交换过一次 表明已经有序
            for (int j = 0; j < arry.length-1-i; j++) {
                if(arry[j]>arry[j+1]){
                    //比较前后两数 前数大则替换顺序
                    temp=arry[j+1];
                    arry[j+1]=arry[j];
                    arry[j]=temp;
                    flag=true;
                }
            }
            if(!flag){ //一次交换后一次都没有排序过
                break;
            }
        }
    }
}