#include<stdio.h>
void display(int a[],int n);
void mergesort(int a[],int ,int);
void simplemerge(int a[],int ,int, int);
int main()
{
   int a[20],i,n;
   scanf("%d",&n);
   for(i=0;i<n;i++)
   {
       scanf("%d",&a[i]);
   }
   printf("Unsorted List\n");
   display(a,n);
   mergesort(a,0,n-1);
   printf("\nMERGE SORT\nSorted List\n");
   display(a,n);
   return 0;
}
void display(int a[],int n)
{
    int i;
    for(i=0;i<n;i++)
   {
       printf("%d\t",a[i]);
   }
}
void mergesort(int a[],int lb,int ub)
{
    int mid;
    if(lb<ub)
    {
        mid = (lb+ub)/2;
        mergesort(a,lb,mid);
        mergesort(a,mid+1,ub);
        simplemerge(a,lb,mid,ub);
    }
}
void simplemerge(int a[],int lb,int mid,int ub)
{
    int i=lb,j=mid+1,k=lb;
    int c[20];
    while(i<=mid && j<=ub)
    {
        if(a[i]<=a[j])
        {
            c[k]=a[i];
            i++;
            k++;
        }
        else
        {
            c[k]=a[j];
            j++;
            k++;
        }
    }
    while(i<=mid)
    {
        c[k]=a[i];
        i++;
        k++;
    }
    while(j<=ub)
    {
        c[k]=a[j];
        j++;
        k++;
    }
    for(i=lb;i<=ub;i++)
    {
        a[i]=c[i];
    }
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: