#include "iostream" using namespace std; void merge(int a[],int l,int m,int r) { int i,j,k; int n1 = m-l+1; int n2 = r-m; int *L = new int[n1]; int *R = new int[n2]; for(i=0;i<n1;i++) L[i]=a[l+i]; for(j=0;j<n2;j++) R[j]=a[m+1+j]; i = 0; j = 0; k = l; while(i<n1&&j<n2) { if(L[i]<R[j]) a[k++] = L[i++]; else a[k++] = R[j++]; } while(i<n1)a[k++] = L[i++]; while(j<n2)a[k++] = R[j++]; } void mergesort(int a[],int l,int r) { if(l>=r)return; int m = (r+l)/2; mergesort(a,l,m); mergesort(a,m+1,r); merge(a,l,m,r); } int main() { int a[10] = {9,8,7,6,5,4,3,2,1,0}; mergesort(a,0,9); for(int i =0;i<10;i++) cout<<a[i]<<" "; cout<<endl; return 0; }