Java 冒泡排序 Arrays.sort(array);

數組簡單的排序,寫了點代碼,實現了數組的正序和倒敘排列,提取了一些公共的方法。

如果有不妥和可優化之處,望留言討論。

話不多說,直接上代碼。

public class MaoPaoSort {
    public static void main(String[] args) {
        int[] array = new int[] { 8, -9, 52, 10, 21, 54, 21, 26, 32, 2, 12, 31, 5 };

        printArray(array);

        sortByType(array, "asc");
        printArray(array);

        sortByType(array, "desc");
        printArray(array);
    }

    /**
     * 對數組按照type進行排序
     * @param array
     * @param type 
     */
    private static void sortByType(int[] array, String type) {
        int length = array.length;
        if ("desc".equals(type)) {
            for (int i = 0; i < length; i++) {
                // 如果這裏沒有最後  -i  則每次都需要多遍歷
                for (int j = 0; j < length - 1 - i; j++) {
                    if (array[j] > array[j + 1]) {
                        swap(array, j, j + 1);
                    }
                }
            }
        } else if ("asc".equals(type)) {
            for (int i = 0; i < length; i++) {
                // 如果這裏沒有最後  -i  則每次都需要多遍歷
                for (int j = 0; j < length - 1 - i; j++) {
                    if (array[j] < array[j + 1]) {
                        swap(array, j, j + 1);
                    }
                }
            }
        } else {
            System.out.println("請輸入正確的排序方式!!!");
        }
    }

    /**
     * 對數組中第i個數和第j個數進行對調
     * @param array
     * @param i
     * @param j
     */
    private static void swap(int[] array, int i, int j) {
        int temp;
        temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }

    /**
     * 打印數組
     * @param array
     */
    private static void printArray(int[] array) {
        for (int i : array) {
            System.out.print(i + "  ");
        }
        System.out.println();
    }
}

打印效果如圖:

 

劃重點:

java.util.Arrays這個類給我們提供了sort方法,可以直接進行冒泡排序,從小到大。

使用方法:Arrays.sort(array);上面的代碼可以用這一行來搞定!!!

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章