Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- void merg(int a[],int l,int mid, int h)
- {
- int i,j,k;
- int n= mid-l+1;
- int m=h-mid;
- int L[n+5],R[m+5];
- for(i=0;i<n;i++)
- L[i]=a[l+i];
- for(j=0;j<m;j++)
- R[j]=a[mid+1+j];
- i=0;
- j=0;
- k=l;
- while (i < n && j < m)
- {
- if (L[i] <= R[j])
- {
- a[k] = L[i];
- i++;
- }
- else
- {
- a[k] = R[j];
- j++;
- }
- k++;
- }
- while (i < n)
- {
- a[k] = L[i];
- i++;
- k++;
- }
- while (j < m)
- {
- a[k] = R[j];
- j++;
- k++;
- }
- }
- void divide(int a[],int l,int h)
- {
- if(l<h)
- {
- int mid= l+(h-l)/2;
- divide(a,l,mid);
- divide(a,mid+1,h);
- merg(a,l,mid,h);
- }
- }
- int main()
- {
- int n;
- cin>>n;
- int a[n+5];
- for(int i=0;i<n;i++)
- cin>>a[i];
- divide(a,0,n-1);
- for(int i=0;i<n;i++)
- cout<<a[i]<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement