/*******************************************/ /*******PROGRAM TO PERFORM MERGE SORT*****/ /***************************************** **/
 
  #include < stdio.h> #include < conio.h> #define SIZE 5 void merge_sort(int [],int,int); void merge_sort_subarray(int [],int,int,int,int);
  void main() {     int a[SIZE],i;     clrscr();
      printf("\nEnter the elements of array a:\n");     for(i=0;i    {         scanf("%d",&a[i]);     }     merge_sort(a,0,SIZE-1);     printf("\nAfter merging the elements are:\n");     for(i=0;i    {         printf("%4d",a[i]);     }     getch(); }
  void merge_sort(int a[],int beg,int end) {     int mid;     if(beg    {         mid=(beg+end)/2;         merge_sort(a,beg,mid);         merge_sort(a,mid+1,end);         merge_sort_subarray(a,beg,mid,mid+1,end);     } }
  void merge_sort_subarray(int a[],int lb,int le,int rb,int re) {     int c[SIZE],i,na,nb,nc;     na=lb;     nb=rb;     nc=lb;     while((na<=le)&&(nb<=re))     {         if(a[na]        {             c[nc]=a[na];             na++;         }         else         {             c[nc]=a[nb];             nb++;         }         nc++;     }     if(na>le)     {         while(nb<=re)         {             c[nc]=a[nb];             nb++;             nc++;         }     }     else     {         while(na<=le)         {             c[nc]=a[na];             na++;             nc++;         }     }     for(i=lb;i<=re;i++)     {         a[i]=c[i];     } }
  For more algorithms Please visit http://www.Xpode.com
  
                 |