研磨算法:排序之归并排序
标签(空格分隔): 研磨算法
理解归并排序
归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法是分治(divide-and-conquer)的经典应用
简单来说就是将一个要排序的数组,先递归地将其分成两半,两半分别排序,然后归并起来。
分治模型
我们将整个数组递归地进行分割,不断二分,直到分隔为独立的元素。如
[8,4,5,7,1,3,6,2]
分为 [8,4,5,7] [1,3,6,2]
分为 [8,4] [5,7] [1,3] [6,2]
分为 [8] [4] [5] [7] [1] [3] [6] [2]
然后对于最小的子问题,即每个独立元素,不断向上两两合并。
[8] [4] [5] [7] [1] [3] [6] [2]
合并 [4,8] [5,7] [1,3]