Sreekar_0125

Untitled

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