冒泡排序

背景介紹: 是一種簡單的排序算法。它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過來。走訪數(shù)列的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換,也就是說該數(shù)列已經(jīng)排序完成。這個(gè)算法的名字由來是因?yàn)樵叫〉脑貢?huì)經(jīng)由交換慢慢“浮”到數(shù)列的頂端。----- 來自 wikipedia

算法規(guī)則: 由于算法每次都將一個(gè)最大的元素往上冒,我們可以將待排序集合(0...n)看成兩部分,一部分為(k..n)的待排序unsorted集合,另一部分為(0...k)的已排序sorted集合,每一次都在unsorted集合從前往后遍歷,選出一個(gè)數(shù),如果這個(gè)數(shù)比其后面的數(shù)大,則進(jìn)行交換。完成一輪之后,就肯定能將這一輪unsorted集合中最大的數(shù)移動(dòng)到集合的最后,并且將這個(gè)數(shù)從unsorted中刪除,移入sorted中。

代碼實(shí)現(xiàn)(Java版本)

public void sort(int[] args) 
        {
            //第一層循環(huán)從數(shù)組的最后往前遍歷
            for (int i = args.length - 1; i > 0 ; --i) {
                //這里循環(huán)的上界是 i - 1,在這里體現(xiàn)出 “將每一趟排序選出來的最大的數(shù)從sorted中移除”
                for (int j = 0; j < i; j++) {
                    //保證在相鄰的兩個(gè)數(shù)中比較選出最大的并且進(jìn)行交換(冒泡過程)
                    if (args[j] > args[j+1]) {
                        int temp = args[j];
                        args[j] = args[j+1];
                        args[j+1] = temp;
                    }
                }
            }
        }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景介紹:是一種簡單的排序算法。它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過來。...
    DreamFish閱讀 251評(píng)論 0 1
  • 冒泡排序(英語:Bubble Sort,臺(tái)灣另外一種譯名為:泡沫排序)是一種簡單的排序算法。它重復(fù)地走訪過要排序的...
    金鑄銘閱讀 412評(píng)論 0 0
  • 項(xiàng)目需要,自己上學(xué)的時(shí)候接觸過一些算法,我記得當(dāng)時(shí)算法那門考了系里最高分,98分,想著沒什么用呢,誰知道這兩天就用...
    愛尚開發(fā)閱讀 1,935評(píng)論 0 3
  • 冒泡排序插入排序插入排序和冒泡排序分析 冒泡排序 冒泡排序(英語:Bubble Sort,臺(tái)灣另外一種譯名為:泡沫...
    六尺帳篷閱讀 2,328評(píng)論 0 9
  • 【圈規(guī)】濟(jì)大人必看 來到校園圈你,算是找到組織啦??! 這里的每一個(gè)小伙伴都是在校的一員~~ 校園圈為生活在我們濟(jì)南...
    173eff1342b1閱讀 218評(píng)論 0 0

友情鏈接更多精彩內(nèi)容