#include<stdio.h>
int merge(int unsortedarr[],int lb,int rb,int len,int sortedarr[])
{
int i=lb,j=rb,k=0;
while(i<rb&&j<=len)
{
if(unsortedarr[i]<unsortedarr[j])
sortedarr[k++]=unsortedarr[i++];
else
sortedarr[k++]=unsortedarr[j++];
}
while(i<rb)
sortedarr[k++]=unsortedarr[i++];
while(j<=len)
sortedarr[k++]=unsortedarr[j++];
for(i=lb,j=0;j<k;i++,j++)
unsortedarr[i]=sortedarr[j];
return 0;
}
int mergesort(int arr[],int b,int len,int sarr[] )
{
int mid;
if(b<len)
{
mid=(b+len)/2;
mergesort(arr,b,mid,sarr);
mergesort(arr,mid+1,len,sarr);
merge(arr,b,mid+1,len,sarr);
}
return 1;
}
int show(int a[],int len)
{
int i=0;
for(;i<len;i++)
printf("%d ",a[i]);
printf("\n");
}
int main ()
{
int a[6]={21,13,1,32,562,15};
int b[6]={0};
show(a,6);
//merge(a,0,1,1,b);
//mergesort(a,0,1,b);
// mergesort(a,2,3,b);
//merge(a,2,3,3,b);
// merge(a,0,2,3,b);
mergesort(a,0,5,b);
show(a,6);
getchar();
return 0;
}