Pagini recente » Cod sursa (job #1621320) | Cod sursa (job #173842) | Cod sursa (job #466968) | Cod sursa (job #1745943) | Cod sursa (job #1886468)
#include <iostream>
#include <fstream>
using namespace std;
int a[500000];
long long n;
void inter(int i, int m, int j){
int b[500000];
long long x=i, k=1, y=m+1;
while(x<=m && y<=j)
if(a[x]<a[y])
b[k++]=a[x++];
else
b[k++]=a[y++];
while(x<=m)
b[k++]=a[x++];
while(y<=j)
b[k++]=a[y++];
long long t=i;
for(k=1; k<=(j-i)+1; ++k)
a[t++]=b[k];
}
void mij(int i, int j){
if(i<j){
int m=(i+j)/2;
mij(i,m);
mij(m+1,j);
inter(i,m,j);
}
}
int main(){
freopen("algsort.out", "w", stdout);
freopen("algsort.in", "r", stdin);
cin>>n;
for(int i=1; i<=n; ++i) cin>>a[i];
mij(1,n);
for(int i=1; i<=n; ++i) cout<<a[i]<<" ";
}