C Program to sort elements using MERGE SORT

C programming code for  Merge SORT  to sort numbers or arrange them in ascending order.

#include <stdio.h>
    #include <conio.h>
    int merge(int *left,int *right,int *result,int nl,int nr)
    {
        int i=0,j=0,k=0;
        while(nl>0 && nr>0)
        {
            if(left[i] <= right[j])
            {
                result[k] = left[i];
                i++;
                k++;
                nl–;
            }
            else
            {
                result[k] = right[j];
                j++;
                k++;
                nr–;
            }
        }
        while(nl>0)
        {
            result [k] = left[i];
            i++;
            k++;
            nl–;
        }
        while(nr>0)
        {
            result[k] = right[j];
            j++;
            k++;
            nr–;
        }
    }

    int main()
    {
        int a[10],b[10],x,y;
        int c[20],i;
        printf(“\nThe no of element in first array : “);
        scanf(“%d”,&x);
        printf(“enter %d no of digits\n\n”,x);
        for (int i=0;i<x;i++)
        {
        printf(“%d no : “,i+1);
        scanf(“%d”,&a[i]);
        }
        printf(“\nThe no of element in 2nd array : “);
        scanf(“%d”,&y);
        printf(“enter %d no of digits\n\n”,y);
        for (int i=0;i<y;i++)
        {
        printf(“%d no : “,i+1);
        scanf(“%d”,&b[i]);
        }
        merge(a,b,c,x,y);
        printf(“\n The sorted list is: “);

        for(i=0;i<x+y;i++)
            printf(“\n %d”,c[i]);
  getch();
 }

OUTPUT

You might be also interested in :