Pagini recente » Cod sursa (job #3181613) | Cod sursa (job #795116) | Cod sursa (job #461861) | Cod sursa (job #344429) | Cod sursa (job #1393594)
#include <cstdio>
using namespace std;
int n,i,a[500005],b[500005];
void interclasare(int st,int mij,int dr)
{
int i,j,k,t;
for(i=st; i<=dr; ++i)
b[i]=a[i];
i=st;
j=mij+1;
k=st-1;
while(i<=mij && j<=dr)
if(b[i]<b[j]) a[++k]=b[i++];
else a[++k]=b[j++];
for(t=i; t<=mij; ++t) a[++k]=b[t];
for(t=j; t<=dr; ++t) a[++k]=b[t];
}
void sort(int st,int dr)
{
int mij;
if(st!=dr)
{
mij=(st+dr)/2;
sort(st,mij);
sort(mij+1,dr);
interclasare(st,mij,dr);
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(i=1; i<=n; ++i)
scanf("%d",&a[i]);
sort(1,n);
for(i=1;i<=n;++i) printf("%d ",a[i]);
return 0;
}