Advertisement
Md_Touhid

Merge Sort

May 18th, 2016 (edited)
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.34 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<limits.h>
  3.  
  4. int arr[1000];
  5.  
  6. void Merge_Sort(int , int);
  7. void Merge(int , int , int);
  8.  
  9.  
  10. int main()
  11. {
  12.  
  13.     arr[0] = INT_MIN;
  14.     int n, i;
  15.     printf("How many numbers : ");
  16.     scanf("%d", &n);
  17.  
  18.     for(i=1; i<=n; i++)
  19.     {
  20.         arr[i] = rand()%1000;
  21.     }
  22.     printf("\n\nUnsorted Data :\n");
  23.     for(i=1; i<=n; i++)
  24.     {
  25.         printf("%d ", arr[i]);
  26.     }
  27.  
  28.     Merge_Sort(1, n);
  29.  
  30.     printf("\n\nSorted Data :\n");
  31.  
  32.     for(i=1; i<=n; i++)
  33.     {
  34.         printf("%d ", arr[i]);
  35.     }
  36.  
  37.     return 0;
  38.  
  39. }
  40.  
  41. void Merge_Sort(int mn , int mx)
  42. {
  43.     if(mn < mx)
  44.     {
  45.         int mid = ((mn + mx) / 2);
  46.  
  47.         Merge_Sort(mn , mid);
  48.         Merge_Sort(mid+1 , mx);
  49.         Merge(mn , mid , mx) ;
  50.     }
  51. }
  52.  
  53. void Merge(int mn , int mid , int mx)
  54. {
  55.     int n1=mid - mn + 1 ;
  56.     int n2=mx-mid ;
  57.  
  58.     int L[n1 + 1] , R[n2 + 1];
  59.  
  60.     int i,j,k;
  61.  
  62.     for( i=1 ; i<=n1 ; i++)
  63.     {
  64.         L[i] = arr[mn + i -1 ] ;
  65.     }
  66.  
  67.     for( j=1 ; j<=n2 ; j++)
  68.     {
  69.         R[j] = arr[mid + j];
  70.     }
  71.  
  72.     L[n1 + 1] = INT_MAX ;
  73.     R[n2 + 1] = INT_MAX ;
  74.  
  75.     i=1 , j=1 ;
  76.  
  77.     for( k=mn ; k<=mx ; k++)
  78.     {
  79.         if(L[i]<R[j])
  80.         {
  81.             arr[k]=L[i];
  82.             i++;
  83.         }
  84.         else
  85.         {
  86.             arr[k]=R[j];
  87.             j++;
  88.         }
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement