Cod sursa(job #1757743)
| Utilizator | Data | 15 septembrie 2016 19:03:03 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <bits/stdc++.h>
using namespace std;
int n; long long a[500005], b[500005];
void Merge(long long a[],int l,int r,long long b[]){
if(r==l) return;
int m=(l+r)/2;
Merge(a,l,m,b);
Merge(a,m+1,r,b);
int i=l, j=m+1;
for(int k=l; k<=r; k++){
if(i<=m && (j>r || a[i]<=a[j])){
b[k]=a[i++];
}
else{
b[k]=a[j++];
}
}
for(int i=l;i<=r;i++) a[i]=b[i];
}
int main()
{
cin >> n;
for(int i=1;i<=n;i++) cin >> a[i];
Merge(a,1,n,b);
for(int i=1;i<=n;i++) cout << a[i] << ' ';
}
