排序算法-歸并排序

前言:排序是現在程序員的必備技能煌抒,是很多公司的面試必考點元镀,不管是做移動端,后端開發(fā)欣簇,排序是繞不過的巾钉,眾生平等翘狱。學習其排序的思想往往能解決不同類型的問題,所以靜下心來砰苍,研究一下不同的排序算法潦匈,算是對自己有一個提升踏烙。

排序概述:排序就是將一組對象按照某種邏輯順序重新排列的過程。

十大排序算法:冒泡排序历等,選擇排序讨惩,插入排序,歸并排序寒屯,堆排序荐捻,快速排序,希爾排序寡夹,計數排序处面,基數排序,桶排序菩掏。

本文對歸并排序走一個解析:

歸并排序步驟:

1.歸并排序是建立在歸并操作上的一種有效的排序算法魂角。該算法是采用分治法的一個非常典型的應用。

2.對于給定一組數據智绸,利用遞歸與分治技術將數據序列劃分成為越來越小的半子表野揪,在對半子表排序后,再利用遞歸方法將排序好的半子表合并成為越來越大的有序序列瞧栗。

3.為了提升性能斯稳,有時候我們在半子表的個數小于某個數(比如15的情況下),對半子表的排序采用其他排序算法迹恐,比如插入排序挣惰。

4.若將兩個有序表合并成一個有序表,稱為2-路歸并殴边,與之對應的還有多路歸并憎茂。

代碼舉例:

對一個數組進行排序:(86,11,77,23,32,45,58,63,93,4,37,22)

int[] array = {86,11,77,23,32,45,58,63,93,4,37,22};

排序代碼展示:?

歸并排序

調用sort方法后打印如下:

歸并排序打印


?對該案例進行分析:(86,11,77,23,32,45,58,63,93,4,37,22)

? 進行第一次拆分 ?left : ?[86, 11, 77, 23, 32, 45]---拆分-->right: ? [58, 63, 93, 4, 37, 22]?

? 注:根據此處代碼執(zhí)行遞歸順序,每次都是先執(zhí)行完左邊子表锤岸,再進行右邊子表拆分竖幔,所以這里只分析大左子表,邏輯是一樣的

? 左邊大子表第一次拆分 :[86, 11, 77]---拆分-->[23, 32, 45]

? (1)對于:[86, 11, 77]

? ? ? ? ? ? ?[86]---拆分-->[11, 77]

? ? ? ? ? ? [11]---拆分-->[77]

? ? ? ? ? ? 執(zhí)行完merge以后:

? ? ? ? ? ? ? ? ? ? ?返回1:[11, 77]

? ? ? ? ? ? ? ? ? ? ?返回2:[11, 77, 86]

?(2)對于:[23, 32, 45]

? ? ? ? ? ? [23]---拆分-->[32, 45]

? ? ? ? ? ? [32]---拆分-->[45]?

? ? ? ? ? ?執(zhí)行完merge以后:

? ? ? ? ? ? ? ? ? ? ? 返回3:[32, 45]

? ? ? ? ? ? ? ? ? ? ? 返回4:[23能耻,32赏枚,45]

根據遞歸順序:

(3)返回2和返回4進行歸并:[11, 23, 32, 45, 77, 86]

(4)右邊大子表步驟和上面步驟一樣:[4, 22, 37, 58, 63, 93]

(5)最后進行總合并 :[4, 11, 22, 23, 32, 37, 45, 58, 63, 77, 86, 93]

至此排序結束

?打印每個步驟的數組:

歸并排序

?

?至此歸并排序就到這里講解結束了,細看的話其實一點也不復雜晓猛。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末饿幅,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子戒职,更是在濱河造成了極大的恐慌栗恩,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,080評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件洪燥,死亡現場離奇詭異磕秤,居然都是意外死亡乳乌,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 90,422評論 3 385
  • 文/潘曉璐 我一進店門市咆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來汉操,“玉大人,你說我怎么就攤上這事蒙兰×琢觯” “怎么了?”我有些...
    開封第一講書人閱讀 157,630評論 0 348
  • 文/不壞的土叔 我叫張陵搜变,是天一觀的道長采缚。 經常有香客問我,道長挠他,這世上最難降的妖魔是什么扳抽? 我笑而不...
    開封第一講書人閱讀 56,554評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮殖侵,結果婚禮上贸呢,老公的妹妹穿的比我還像新娘。我一直安慰自己愉耙,他們只是感情好贮尉,可當我...
    茶點故事閱讀 65,662評論 6 386
  • 文/花漫 我一把揭開白布拌滋。 她就那樣靜靜地躺著朴沿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪败砂。 梳的紋絲不亂的頭發(fā)上赌渣,一...
    開封第一講書人閱讀 49,856評論 1 290
  • 那天,我揣著相機與錄音昌犹,去河邊找鬼坚芜。 笑死,一個胖子當著我的面吹牛斜姥,可吹牛的內容都是我干的鸿竖。 我是一名探鬼主播,決...
    沈念sama閱讀 39,014評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼铸敏,長吁一口氣:“原來是場噩夢啊……” “哼缚忧!你這毒婦竟也來了?” 一聲冷哼從身側響起杈笔,我...
    開封第一講書人閱讀 37,752評論 0 268
  • 序言:老撾萬榮一對情侶失蹤闪水,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蒙具,有當地人在樹林里發(fā)現了一具尸體球榆,經...
    沈念sama閱讀 44,212評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡朽肥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,541評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了持钉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衡招。...
    茶點故事閱讀 38,687評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖每强,靈堂內的尸體忽然破棺而出蚁吝,到底是詐尸還是另有隱情,我是刑警寧澤舀射,帶...
    沈念sama閱讀 34,347評論 4 331
  • 正文 年R本政府宣布窘茁,位于F島的核電站,受9級特大地震影響脆烟,放射性物質發(fā)生泄漏山林。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,973評論 3 315
  • 文/蒙蒙 一邢羔、第九天 我趴在偏房一處隱蔽的房頂上張望驼抹。 院中可真熱鬧,春花似錦拜鹤、人聲如沸框冀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽明也。三九已至,卻和暖如春惯裕,著一層夾襖步出監(jiān)牢的瞬間温数,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評論 1 266
  • 我被黑心中介騙來泰國打工蜻势, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留撑刺,地道東北人。 一個月前我還...
    沈念sama閱讀 46,406評論 2 360
  • 正文 我出身青樓握玛,卻偏偏與公主長得像够傍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子挠铲,可洞房花燭夜當晚...
    茶點故事閱讀 43,576評論 2 349

推薦閱讀更多精彩內容