归并排序运行时间O(N log N),但是由于需要线性附加内存,所以很少用于主存排序. 算法核心在于以下三条语句,分治递归,分别对左半边和右半边的数组进行排序,然后把左右半边的数组一一进行比较放入数组 msort(nums,tmp,lp,center); msort(nums,tmp,center+,rp); merge(nums,tmp,lp,center+,rp); 下面是代码,主要包括三个函数: void mergesort(int *nums,int n) { int *tmp=new…