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);上面的代码可以用这一行来搞定!!!

发布了23 篇原创文章 · 获赞 18 · 访问量 4766

猜你喜欢

转载自blog.csdn.net/guangtouwj/article/details/104943236