合并排序 leetcode 4

来源:互联网 发布:型钢表面积计算软件 编辑:程序博客网 时间:2024/06/04 07:17

合并排序

归并是指将若干个已排序的子文件合并成一个有序的文件。

常见的归并排序:Merge sort ,Polyphase Merge sort, Strand sort

两路归并排序(Merge sort) 该算法是采用分治法(Divide and conquer)的一个非常典型的应用。

归并操作的基本步骤:

1、申请两个与已经排序序列相同大小的空间,并将两个序列拷贝其中;

2、设定最初位置分别为两个已经拷贝序列的起始位置,比较两个元素的大小,依次选择相对小的元素放到原始序列;

3、重复2直到某一拷贝序列全部放入原始序列,将另一个序列剩下的所有元素直接复制到原始序列尾。


设归并排序的当前区间是R[low..high],分治法的三个步骤是:
1.分解:将当前区间一分为二,即求分裂点
2.求解:递归地对两个子区间R[low..mid]和R[mid+1..high]进行归并排序;
3.组合:将已排序的两个子区间R[low..mid]和R[mid+1..high]归并为一个有序的区间R[low..high]。
递归的终结条件:子区间长度为1(一个记录自然有序)。

算法示意图:



原创粉丝点击