冒泡排序实现(java)

来源:互联网 发布:美工代码 编辑:程序博客网 时间:2024/06/10 04:44

冒泡排序简单说就是数组中下标相邻的两个元素进行比较,通过两两交换的方式,最终获得一个排序好的数组。

以下为两种实现方式(从小到大)

    /**     * 冒泡排序(思路1)     * 用flag控制,当不交换时,停止排序。     * @param a 传入数组.     * @param n      */    static void bubbleSort1(int a[], int n) {        int i, j;        boolean flag;        j = n;        flag = true;        while (flag) {            flag = false;            for (i = 0; i < j; i++) {                if (a[i] > a[i + 1]) {                    int temp = a[i];                    a[i] = a[i + 1];                    a[i + 1] = temp;                    flag = true;                }            }            j--;            for (int k = 0; k < a.length; k++) {                System.out.print(a[k] + ",");                if (k == a.length - 1) {                    System.out.print("\n");                }            }        }    }
    /**     * 冒泡排序(思路2)     * 用flag控制下次排序时,右侧已正确排序的不再参与排序。     * @param a 传入数组.     * @param n      */    static void bubbleSort2(int a[], int n) {        int i, j ,flag;        flag = n;        while (flag > 0) {            j = flag;            flag = 0;            for (i = 0; i < j; i++) {                if (a[i] > a[i + 1]) {                    int temp = a[i];                    a[i] = a[i + 1];                    a[i + 1] = temp;                    flag = i + 1;                }            }            for (int k = 0; k < a.length; k++) {                System.out.print(a[k] + ",");                if (k == a.length - 1) {                    System.out.print("\n");                }            }        }    }



0 0
原创粉丝点击