昨天说了快速排序,今天来讲一讲归并排序:
什么是归并?
归并:将两个或两个以上的有序表组合成一个新有序表。
归并操作的步骤:
申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列
设定两个指针,最初位置分别为两个已经排序序列的起始位置
比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置
重复步骤3直到某一指针超出序列尾
将另一序列剩下的所有元素直接复制到合并序列尾
归并图解:
代码实现:
#include <iostream>
using namespace std;
//将数组 a[low,mid] 与 a(mid,high] 合并(归并)
void Merge(