Merge sort (self-use)

Merge sort is similar to binary and uses recursion

#include<iostream>
using namespace std;
int a[10]={1,3,5,9,8,4,7,6,2,10};
int b[10];
void Merge(int a[],int begin,int mid,int end,int temp[]){
	int t=0,t1=begin,t2=mid+1;
	while(t1<=mid&&t2<=end){
		if(a[t1]<a[t2]){
			temp[t++]=a[t1++];
		}
		else{
			temp[t++]=a[t2++];
		}
	}
	while(t1<=mid){
		temp[t++]=a[t1++];
	}
	while(t2<=end){
		temp[t++]=a[t2++];
	}
	for(int i=0,j=begin;i<t;i++,j++){
		a[j]=temp[i];
	}	
}
void MergeSort(int a[],int begin,int end,int temp[])
{
	if(begin<end){
		int mid=(begin+end)/2;
		MergeSort(a,begin,mid,temp);
		MergeSort(a,mid+1,end,temp);
		Merge(a,begin,mid,end,temp);
	}
}
int main(){
//	int size=sizeof(a)/sizeof(int);
	MergeSort(a,0,9,b);
	for(int i=0;i<10;i++){
		cout<<a[i]<<" ";
	}
	return 0;
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326083962&siteId=291194637