Sreekar_0125

Untitled

Sep 25th, 2022
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.17 KB | None | 0 0
  1. #include <stdio.h>
  2. void merge(int arr[], int l, int mid, int r)
  3. {
  4.  
  5.     int i = l, j = mid + 1, k = l, output[1000];
  6.     while (i <= mid && j <= r)
  7.     {
  8.         if (arr[i] < arr[j])
  9.         {
  10.             output[k] = arr[i];
  11.             k++;
  12.             i++;
  13.         }
  14.         else
  15.         {
  16.             output[k] = arr[j];
  17.             j++;
  18.             k++;
  19.         }
  20.     }
  21.     while (i <= mid || j <= r)
  22.     {
  23.         if (i <= mid)
  24.         {
  25.             output[k] = arr[i];
  26.             k++;
  27.             i++;
  28.         }
  29.         else
  30.         {
  31.             output[k] = arr[j];
  32.             j++;
  33.             k++;
  34.         }
  35.     }
  36.     for (int i = l; i < k; i++)
  37.     {
  38.         arr[i] = output[i];
  39.     }
  40. }
  41. void mergeSort(int arr[], int l, int r)
  42. {
  43.     if (l < r)
  44.     {
  45.         int mid = (l + r) / 2;
  46.         mergeSort(arr, l, mid);
  47.         mergeSort(arr, mid + 1, r);
  48.         merge(arr, l, mid, r);
  49.     }
  50. }
  51. int main()
  52. {
  53.     int n;
  54.     scanf("%d", &n);
  55.     int a[n];
  56.     for (int i = 0; i < n; i++)
  57.     {
  58.         scanf("%d", &a[i]);
  59.     }
  60.     mergeSort(a, 0, n - 1);
  61.     for (int i = 0; i < n; i++)
  62.     {
  63.         printf("%d ", a[i]);
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment