BubbleSort冒泡排序

冒泡排序是一種簡單的排序算法傲武。它適合小規(guī)模數(shù)據(jù)的排序,并且其效率比較低币厕。冒泡排序是一種交換排序,它的基本思想是:兩兩比較相鄰記錄的關(guān)鍵字埂蕊,如果反序則交換往弓,直到?jīng)]有反序的記錄為止。

算法步驟(以正序為例)

  1. 比較相鄰的元素蓄氧。如果第一個比第二個大函似,就交換他們兩個。
  2. 對每一對相鄰元素作同樣的工作喉童,從開始第一對到結(jié)尾的最后一對撇寞。這步做完后,最后的元素會是最大的數(shù)堂氯。
  3. 針對所有的元素重復以上的步驟蔑担,除了最后一個。
  4. 持續(xù)每次對越來越少的元素重復上面的步驟咽白,直到?jīng)]有任何一對數(shù)字需要比較钟沛。
bubbleSort.gif

go實現(xiàn)

func bubbleSort(arr []int) []int {
    length := len(arr)
    for i := 0; i < length; i++ {
        for j := 0; j < length-1-i; j++ {
            if arr[j] > arr[j+1] {
                arr[j], arr[j+1] = arr[j+1], arr[j]
            }
        }
    }
    return arr
}

python

def bubbleSort(arr):
    for i in range(1, len(arr)):
        for j in range(0, len(arr)-i):
            if arr[j] > arr[j+1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
    return arr

冒泡排序復雜度分析

分析一下它的時間復雜度。當最好的情況局扶,也就是要排序的表本身就是有序的恨统,那么我們比較次數(shù),那么可以判斷出就是n-1次的比較三妈,沒有數(shù)據(jù)交換畜埋,此時時間復雜度為O(n)。當最壞的情況畴蒲,即待排序是逆序的情況悠鞍,此時時間復雜度為 n ^2 。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市咖祭,隨后出現(xiàn)的幾起案子掩宜,更是在濱河造成了極大的恐慌,老刑警劉巖么翰,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牺汤,死亡現(xiàn)場離奇詭異,居然都是意外死亡浩嫌,警方通過查閱死者的電腦和手機檐迟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來码耐,“玉大人追迟,你說我怎么就攤上這事∩龋” “怎么了敦间?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長束铭。 經(jīng)常有香客問我廓块,道長,這世上最難降的妖魔是什么纯露? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任剿骨,我火速辦了婚禮代芜,結(jié)果婚禮上埠褪,老公的妹妹穿的比我還像新娘。我一直安慰自己挤庇,他們只是感情好钞速,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嫡秕,像睡著了一般渴语。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上昆咽,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天驾凶,我揣著相機與錄音,去河邊找鬼掷酗。 笑死调违,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的泻轰。 我是一名探鬼主播技肩,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼浮声!你這毒婦竟也來了虚婿?” 一聲冷哼從身側(cè)響起旋奢,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎然痊,沒想到半個月后至朗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡玷过,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年爽丹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辛蚊。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡粤蝎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出袋马,到底是詐尸還是另有隱情初澎,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布虑凛,位于F島的核電站碑宴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏桑谍。R本人自食惡果不足惜延柠,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望锣披。 院中可真熱鬧贞间,春花似錦、人聲如沸雹仿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胧辽。三九已至峻仇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間邑商,已是汗流浹背摄咆。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留人断,地道東北人吭从。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像含鳞,于是被迫代替她去往敵國和親影锈。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 排序(上):為什么插入排序比冒泡排序更受歡迎枣抱? 排序?qū)τ谌魏我粋€程序員來說,可能都不會陌生辆床。你學的第一個算法佳晶,可能...
    GhostintheCode閱讀 3,352評論 4 27
  • 知 識 點 / 超 人 數(shù)據(jù)結(jié)構(gòu)算法排序是比較枯燥的知識,學習一定要耐著性子看讼载,不然很容易理解錯誤轿秧。本文比較適合自...
    樹下敲代碼的超人閱讀 5,224評論 9 58
  • 冒泡排序 冒泡排序算法的運作如下: 比較相鄰的元素。如果第一個比第二個大咨堤,就交換他們兩個菇篡。對每一對相鄰元素作同樣的...
    JiangCheng97閱讀 210評論 0 0
  • 穩(wěn)定:如果a原本在b前面,而a=b一喘,排序之后a仍然在b的前面驱还;不穩(wěn)定:如果a原本在b的前面,而a=b凸克,排序之后a可...
    意識流丶閱讀 3,155評論 2 9
  • 1.付出不亞于任何人的努力 2.要謙虛议蟆,不要驕傲 3.要每天反省 4.活著,就要感謝 5.積善行萎战,思利他 6.不要...
    阿滿同學閱讀 148評論 0 2