Susri

merge

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