來源:圖解排序算法(四)之歸并排序 - dreamcatcher-cx - 博客園
歸并排序(MERGE-SORT)是利用歸并的思想實現(xiàn)的排序方法,該算法采用經(jīng)典的分治(divide-and-conquer)策略(分治法將問題分(divide)成一些小的問題然后遞歸求解蜡塌,而治(conquer)的階段則將分的階段得到的各答案"修補"在一起丰榴,即分而治之)。
分而治之
可以看到這種結(jié)構(gòu)很像一棵完全二叉樹,本文的歸并排序我們采用遞歸去實現(xiàn)(也可采用迭代的方式去實現(xiàn))他宛。分階段可以理解為就是遞歸拆分子序列的過程船侧,遞歸深度為log2n。
合并相鄰有序子序列
再來看看治階段厅各,我們需要將兩個已經(jīng)有序的子序列合并成一個有序序列镜撩,比如上圖中的最后一次合并,要將[4,5,7,8]和[1,2,3,6]兩個已經(jīng)有序的子序列队塘,合并為最終序列[1,2,3,4,5,6,7,8]袁梗,來看下實現(xiàn)步驟。