1. 程式人生 > 實用技巧 >【狂神說Java學習筆記】階段一JavaSE基礎(九)氣泡排序

【狂神說Java學習筆記】階段一JavaSE基礎(九)氣泡排序

筆記內容:狂神說Java階段一Java基礎視訊P58
狂神說Java視訊連結


目錄

程式碼
程式碼解釋
程式碼解釋圖


程式碼

int[] arrays = {4,2,3,1};
int[] sortArray = sort(arrays);
System.out.println(Arrays.toString((sortArray)));

public static int[] sort(int[] array) {
        int temp = 0;
        //外層迴圈:大迴圈的次數
        for (int i = 0; i < array.length-1; i++) {
            //內層迴圈:數與數之間的比較次數
            for (int j = 0; j < array.length-1-i; j++) {
                if ( array[j] > array[j+1] ) {
                    temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                }
            }
        }
        return array;
    }

程式碼解釋:

外層最多迴圈三次,最小的數就一定能迴圈到排序位置的首位。

同理,內層只用依次迴圈3、2、1次,最大的數就一定能排到排序位置的最高位,因此下一次迴圈就沒必要再迴圈最後一個數和倒數第二個數,所以每次數與數之間比較的次數要減少1(j的array.length-1-i就是這個作用,因為i每次增加1,相當於j每次都多減了1,即每次數與數之間的比較的次數就減少了1),即並不是每次都完全把所有的數便利了一遍。

程式碼解釋圖: