You are on page 1of 1

#include<iostream>

using namespace std;


void merge(int a[],int left,int right,int mid){
int i,j,k,tem[right-left+1];
i=left;
j=mid+1;
k=0;
while(i<=mid&&j<=right){
if(a[i]<a[j]){
tem[k]=a[i];
k++;
i++;
}
else{
tem[k]=a[j];
k++;
j++;
}
}
while(i<=mid){
tem[k]=a[i];
k++;
i++;
}
while(j<=right){
tem[k]=a[j];
k++;
j++;
}
for(i=left;i<=right;i++){
a[i]=tem[i-left];
}
}
void mergesort(int a[],int left,int right){
int mid;
if(left<right){
mid=(left+right)/2;
mergesort(a,left,mid);
mergesort(a,mid+1,right);
merge(a,left,right,mid);
}
}
int main(){
int i,a[100],n;
cout<<"Enter n: ";
cin>>n;
cout<<"Enter array elements: ";
for(i-0;i<n;i++){
cin>>a[i];
}
mergesort(a,0,n-1);
cout<<"Sorted array is: ";
for(i=0;i<n;i++){
cout<<a[i]<<"\t";
}
return 0;
}

You might also like