C Program to sort a random array of n integers (accept the value of n from user) in ascending order by using a recursive Merge sort algorithm | Merge Sort

Merge Sort :

Sort a random array of n integers (accept the value of n from user) in ascending order by using a recursive Merge sort algorithm | Merge Sort


#include<stdio.h>
int a[50],n;
int main()
{
   int i;

   printf("How many elements are u going to enter?: ");
   scanf("%d",&n);
   generate(a,n);


   for(i=0;i<n;i++)
    printf("%d ",a[i]);

     msortdiv(0,n-1);
    printf("\nOrder of Sorted elements: ");
   for(i=0;i<n;i++)
      printf(" %d\t",a[i]);

}

int msortdiv(int low,int high)
{
    int mid;
    if(low!=high)
    {
        mid=((low+high)/2);
        msortdiv(low,mid);
        msortdiv(mid+1,high);
        mergesort(low,mid,high);
    }

}
int mergesort(int low,int mid,int high)
{
    int t[50],i,j,k;
    i=low;
    j=mid+1;
    k=low;
    while((i<=mid) && (j<=high))
    {
        if(a[i]>=a[j])
            t[k++]=a[j++];
        else
            t[k++]=a[i++];
    }
    while(i<=mid)
        t[k++]=a[i++];

    while(j<=high)
        t[k++]=a[j++];
    for(i=low;i<=high;i++)
        a[i]=t[i];
}

void generate(int a[],int n)
{
int i;
for(i=0;i<n;i++)
   a[i]=rand()%100;

}

Output  :

How many elements are u going to enter?: 7
41 67 34 0 69 24 78
Order of Sorted elements:  0     24      34      41      67      69      78
Process returned 0 (0x0)   execution time : 2.738 s
Press any key to continue.

Post a Comment

0 Comments