在上次分享的快排算法,不知大家感覺(jué)分享的如何,上次文章里面的圖比較丑一點(diǎn),快排的思想核心不知道大家有沒(méi)有理解到位;我們今天繼續(xù)給大家分享排序算法里面的另外一種排序算法:歸并排序!
一、歸并排序:
1、歸并排序操作的核心思想:
a、確定分界點(diǎn):mid=(l+r)/2
b、遞歸排序左邊和右邊(排完左右兩邊的數(shù),就會(huì)成為兩個(gè)有序的序列了)
c、歸并(把上面的兩個(gè)有序序列合并成一個(gè)有序的序列,用一個(gè)簡(jiǎn)單的詞來(lái)說(shuō),就是合二為一?。?/p>
2、舉例:
比如我們有兩組已經(jīng)排好的序列數(shù)字,我們要進(jìn)行第三步合并,該如何進(jìn)行呢?思路如下:
a、這里先定義一個(gè)空的數(shù)組res,它主要是為了臨時(shí)存放合并序列排序好的數(shù)字;我們從圖中可以看到,第一個(gè)序列指針i指向數(shù)字1,第二序列指針j指向2,這個(gè)時(shí)候我們要比較兩個(gè)數(shù)字的大小,小的數(shù)字就放到臨時(shí)數(shù)組res里面去,這里我們明顯知道數(shù)字1小于2,所以把1放到臨時(shí)數(shù)組res里取
b、然后指針i往下移動(dòng),再次進(jìn)行比較,明顯發(fā)現(xiàn)指針j指向的數(shù)字2更小,把它放到res里面去,然后指針j往下移動(dòng),指針i不動(dòng),后面依次類推
審核編輯:符乾江
-
算法
+關(guān)注
關(guān)注
23文章
4576瀏覽量
92341 -
排序
+關(guān)注
關(guān)注
0文章
31瀏覽量
9693
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論