學習筆記之算法--冒泡排序

近期打算把簡單的排序算法全部實現一遍,今天先寫個冒泡排序作爲打卡開始:

關注點:兩層循環,循環次數length-1,優化標識flag減少循環次數

public static void bubbleSort(int[] arr){
    System.out.println("冒泡排序前:" + Arrays.toString(arr));
    for(int i=0;i < arr.length - 1;i++){
        boolean flag = true; //標示字段,減少循環次數
        for(int j = 0; j < arr.length -i -1 ;j++){
         //此處j < arr.length-i-1,因爲每循環一次最後面的一個數字都會變爲最大            if(arr[j] > arr[j+1]){
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
                flag = false;
            }
        }
        if(flag){//循環一圈均未交換,則表示已經全部有序
            break;
        }
    }
    System.out.println("冒泡排序後:" + Arrays.toString(arr));
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章