Advertisement
Shiam7777777

Untitled

Jan 19th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 KB | None | 0 0
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3.  
  4. void merge(int arr[], int l, int m, int r)
  5. {
  6.     int i, j, k;
  7.     int n1 = m - l + 1;
  8.     int n2 = r - m;
  9.  
  10.     int L[n1], R[n2];
  11.  
  12.     for (i = 0; i < n1; i++)
  13.         L[i] = arr[l + i];
  14.     for (j = 0; j < n2; j++)
  15.         R[j] = arr[m + 1+ j];
  16.  
  17.     i = 0;
  18.     j = 0;
  19.     k = l;
  20.     while (i < n1 && j < n2)
  21.     {
  22.         if (L[i] <= R[j])
  23.         {
  24.             arr[k] = L[i];
  25.             i++;
  26.         }
  27.         else
  28.         {
  29.             arr[k] = R[j];
  30.             j++;
  31.         }
  32.         k++;
  33.     }
  34.  
  35.     while (i < n1)
  36.     {
  37.         arr[k] = L[i];
  38.         i++;
  39.         k++;
  40.     }
  41.  
  42.     while (j < n2)
  43.     {
  44.         arr[k] = R[j];
  45.         j++;
  46.         k++;
  47.     }
  48. }
  49.  
  50. void mergeSort(int arr[], int l, int r)
  51. {
  52.     if (l < r)
  53.     {
  54.  
  55.         int m = l+(r-l)/2;
  56.  
  57.         mergeSort(arr, l, m);
  58.         mergeSort(arr, m+1, r);
  59.  
  60.         merge(arr, l, m, r);
  61.     }
  62. }
  63.  
  64. void printArray(int A[], int size)
  65. {
  66.     int i;
  67.     for (i=0; i < size; i++)
  68.         printf("%d ", A[i]);
  69.     printf("\n");
  70. }
  71.  
  72. int main()
  73. {
  74.     int arr[] = {12, 11, 13, 5, 6, 7};
  75.     int arr_size = sizeof(arr)/sizeof(arr[0]);
  76.  
  77.     printf("Given array is \n");
  78.     printArray(arr, arr_size);
  79.  
  80.     mergeSort(arr, 0, arr_size - 1);
  81.  
  82.     printf("\nSorted array is \n");
  83.     printArray(arr, arr_size);
  84.     return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement