Pagini recente » Cod sursa (job #3250226) | Statistici Emma Bailey (pestcontrol484) | Cod sursa (job #1780009) | Cod sursa (job #2805946) | Cod sursa (job #832531)
Cod sursa(job #832531)
#include <cstdio>
using namespace std;
int v[500073];
void merge(int start,int med,int end)
{
int i,j;
int Aux[end-start+2],poz = 0;
for(i=start,j=med+1;i<=med||j<=end;)
{
if(i<=med&&j<=end)
if(v[i]<v[j])
Aux[poz++] = v[i++];
else Aux[poz++] = v[j++];
else
if(i<=med)
Aux[poz++] = v[i++];
else
Aux[poz++] = v[j++];
}
for(i=0;i<poz;i++)
v[start+i] = Aux[i];
}
void mergesort(int start,int end)
{
int med=(start+end)/2;
if (start==end)
return;
else
{
mergesort(start,med);
mergesort(med+1,end);
merge(start,med,end);
}
}
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",&v[i]);
mergesort(1,n);
for (i=1;i<=n;i++)
printf("%d ",v[i]);
return 0;
}