算法 合并排序 c++语言

今天复习算法,盲敲合并排序出现了许多问题,就把该算法彻底理解一遍,敲了几遍,加深自己印象

#include
using namespace std;
void Merge(int a[],int left,int middle,int right)
{
	int m=left,k=left,j=middle+1;
	int *b = new int[right-left];
	while(m<=middle && j<=right){
		if(a[m]<=a[j]) b[k++]=a[m++];
		else b[k++]=a[j++];
	}
	if(m>middle){
		for(int q=j;q<=right;q++) b[k++]=a[q];
	}
	else{
		for(int q=m;q<=middle;q++) b[k++]=a[q];
	}
	for(int w=left;w<=right;w++) a[w]=b[w];
	
}
void MergeSort(int a[],int left,int right)
{
	if(left

你可能感兴趣的:(广外大二算法)