Pagini recente » Istoria paginii runda/lervs_11_12_schooldays | Istoria paginii runda/tema-24-03-2015 | Clasament runda_1 | preoni-2008/clasament/runda-1/10 | Cod sursa (job #1516471)
#include <bits/stdc++.h>
#define MAX 500005
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,v[MAX],aux[MAX];
void mergesort(int l,int r)
{
if(l==r) return;
int m;
m=(r+l)/2;
mergesort(l,m);
mergesort(m+1,r);
int i,j,k;
for(i=l,j=m+1,k=l;i<=m || j<=r; )
{
if((j>r)||(i<=m && v[i]<v[j]))
{
aux[k++]=v[i];
i++;
}
else
{
aux[k++]=v[j];
j++;
}
}
for(k=l;k<=r;k++)
{
v[k]=aux[k];
}
}
int main()
{
f>>n;
for(int i=1; i<=n; i++)
{
f>>v[i];
}
mergesort(1,n);
for(int i=1;i<=n; i++)
{
g<<v[i]<<' ';
}
return 0;
}