天天看點

用java實作冒泡排序

思想詳解:

第一輪:第一個元素和第二個元素進行比較值大的往移,第二個和第三個元素進行比較值大的往後移,
第三個和第四個進行比較值大的往後移...以此類推,第一輪是把數組中最大值放到最後一位
第二輪:第一個元素和第二個元素進行比較值大的往後移一位,
然後第二個元素和第三個元素進行比較,值大的往後移,以此類推,把數組第二大的放到倒數第二位 以此類推

代碼如下:      
//冒泡排序
        int[] arr={5,2,1,22,11,0};
        //建立一個臨時變量
        int temp;
        for (int j = 0; j <arr.length-1 ; j++) {//進行比較的輪數:數組的長度-1  這裡的數組長度為6 6-1=5 所有會比較5輪,經過了5輪排序
            for (int i = 0; i < arr.length - 1-j; i++) {//所有這裡要-1,(防止出現數組角标越界)
                if (arr[i] > arr[i + 1]) {//因為這裡是+1     這裡是從小到大進行排序,如果要從大到小換成<就可以了
                    //滿足條件則交換
                    temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;
                }
            }
        }
        System.out.print(Arrays.toString(arr));