Nayeemzaman

Untitled

Dec 13th, 2019
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.94 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.     while(i<n1){
  31.         a[k]=l[i];
  32.         k++;
  33.         i++;
  34.     }
  35.     while(j<n2){
  36.         a[k]=R[j];
  37.         k++;
  38.         j++;
  39.     }
  40.  
  41. }
  42. void mergesort(int a[],int p,int r)
  43. {
  44.     if(p<r)
  45.     {
  46.         int q=(p+r)/2;
  47.         mergesort(a,p,q);
  48.         mergesort(a,q+1,r);
  49.         merge(a,p,q,r);
  50.  
  51.  
  52.     }
  53. }
  54. int main()
  55. {
  56.     int a[20],n,i;
  57.     scanf("%d",&n);
  58.     for(i=0;i<n;i++)
  59.     {
  60.         scanf("%d",&a[i]);
  61.     }
  62.     mergesort(a,0,n-1);
  63.  
  64.     for(i=0;i<n;i++)
  65.     {
  66.         printf("%d ",a[i]);
  67.     }
  68.  
  69. }
Advertisement
Add Comment
Please, Sign In to add comment