rendered paste body#include <stdio.h>
int main (int argc, const char * argv[])
{
// insert code here...
int n,i;
int a[100];
printf("\nEnter no of elements");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
mergesort(a,1,n);
for(i=1;i<=n;i++)
{
printf("\n%d",a[i]);
}
return 0;
}
mergesort(int *a, int low, int high)
{
int mid;
if(low<high)
{
mid=(low+high)/2;
mergesort(a,low,mid);
mergesort(a,mid+1,high);
merge(a,low,high,mid);
}
return(0);
}
merge(int *a, int low, int high, int mid)
{
int i, j, k,c;
i=low;
j=mid+1;
//k=low;
while(i<=mid)
{
if(a[i]<=a[j])
{
i++;
}
else
{
c=a[i];
a[i]=a[j];
a[j]=c;
k=j;
j++;
i++;
while(a[k]<=a[j])
{
//if(a[k]<a[j])
//{
c=a[k];
a[k]=a[i];
a[i]=c;
i++;
if(i>mid+1)
{
k++;
}
//}
}
//else
while(a[k]>a[j])
{
c=a[i];
a[i]=a[j];
a[j]=c;
j++;
i++;
if(i>mid+1)
{
k++;
}
}
}
}
/*while(i<=mid)
{
c[k]=a[i];
k++;
i++;
}
while(j<=high)
{
c[k]=a[j];
k++;
j++;
}*/
}