Pagini recente » Cod sursa (job #832833) | Cod sursa (job #833923)
Cod sursa(job #833923)
#include<stdio.h>
#include<algorithm>
using namespace std;
int a[500005],aux[500005];
void merge(int st,int dr)
{
if(st==dr) return;
int med;
med=(st+dr)/2;
merge(st,med);
merge(med+1,dr);
int p1,p2,u=-1;
p1=st;p2=med+1;
while(p1<=med && p2<=dr)
if(a[p1]>a[p2]) aux[++u]=a[p2++];
else aux[++u]=a[p1++];
while(p1<=med) aux[++u]=a[p1++];
while(p2<=dr ) aux[++u]=a[p2++];
for(int i=st;i<=dr;i++)
a[i]=aux[i-st];
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
int n,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
merge(1,n);
for(i=1;i<=n;i++)
printf("%d ",a[i]);
return 0;
}