当待排序文件已经部分排序好时,可以采用将已排序部分惊醒合并的办法,将部分排序的记录归并成一个完全有序的文件,这就是归并排序。这就是归并排序的思想。
递归实现的代码:
void MergeSort(int array[], int first, int last)
{ int mid = 0;
if(first<last)
{
mid = (first+last)/2;
MergeSort(array, first, mid);
MergeSort(array, mid+1,last);
Merge(array,first,mid,last);
}
}
采用非递归实现的办法是建立一个同原文件一样大的存储空间,来个来回保存归并结果。