中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

java冒泡排序算法

2018-07-20    來(lái)源:open-open

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用
/**
 * 冒泡排序:執(zhí)行完一次內(nèi)for循環(huán)后,最小的一個(gè)數(shù)放到了數(shù)組的最前面。相鄰位置之間交換
 *
 * 兩兩比較待排序數(shù)據(jù)元素的大小,發(fā)現(xiàn)兩個(gè)數(shù)據(jù)元素的次序相反時(shí)即進(jìn)行交換,直到?jīng)]有反序的數(shù)據(jù)元素為止。
 * 設(shè)想被排序的數(shù)組R[1..N]垂直豎立,將每個(gè)數(shù)據(jù)元素看作有重量的氣泡
 * ,根據(jù)輕氣泡不能在重氣泡之下的原則,從下往上掃描數(shù)組R,凡掃描到違反本原則的輕氣泡,就使其向上
 * "漂浮",如此反復(fù)進(jìn)行,直至最后任何兩個(gè)氣泡都是輕者在上,重者在下為止。
 */
 
public class BubbleSort {
 
    /**
     * 排序算法的實(shí)現(xiàn),對(duì)數(shù)組中指定的元素進(jìn)行排序
     *
     * @param array
     *            待排序的數(shù)組
     * @param from
     *            從哪里開始排序
     * @param end
     *            排到哪里
     * @param c
     *            比較器
     */
    public void bubble(Integer[] array, int from, int end) {
        // 需array.length - 1輪比較
        for (int k = 1; k < end - from + 1; k++) {
            // 每輪循環(huán)中從最后一個(gè)元素開始向前起泡,直到i=k止,即i等于輪次止
            for (int i = end - from; i >= k; i--) {
                // 按照一種規(guī)則(后面元素不能小于前面元素)排序
                if ((array[i].compareTo(array[i - 1])) < 0) {
                    // 如果后面元素小于了(當(dāng)然是大于還是小于要看比較器實(shí)現(xiàn)了)前面的元素,則前后交換
                    swap(array, i, i - 1);
                }
            }
        }
    }
 
    /**
     * 交換數(shù)組中的兩個(gè)元素的位置
     *
     * @param array
     *            待交換的數(shù)組
     * @param i
     *            第一個(gè)元素
     * @param j
     *            第二個(gè)元素
     */
    public void swap(Integer[] array, int i, int j) {
        if (i != j) {// 只有不是同一位置時(shí)才需交換
            Integer tmp = array[i];
            array[i] = array[j];
            array[j] = tmp;
        }
    }
 
    /**
     * 測(cè)試
     *
     * @param args
     */
    public static void main(String[] args) {
        Integer[] intgArr = { 7, 2, 4, 3, 12, 1, 9, 6, 8, 5, 11, 10, 53, 28,
                19, -4, -9, -1, 0, -7, 8, 7, 8, 1 };
        BubbleSort bubblesort = new BubbleSort();
        bubblesort.bubble(intgArr, 0, intgArr.length - 1);
        for (Integer intObj : intgArr) {
            System.out.print(intObj + " ");
        }
    }
}

標(biāo)簽: swap

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:java通過(guò)XPath解析xml節(jié)點(diǎn)

下一篇:使用 java.awt.Graphics2D 畫線