Pagini recente » Cod sursa (job #2482733) | Cod sursa (job #2010492) | Cod sursa (job #1784376) | Cod sursa (job #2906783) | Cod sursa (job #1268861)
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
const int nmax=500000;
int a[nmax+1],v[nmax+1];
void mergesort (int i,int j)
{
int p=i,q=(i+j)/2+1;
if(i==j)
return ;
mergesort(i,(i+j)/2);
mergesort((i+j)/2+1,j);
for(int x=i;x<=j;x++)
{
if( q>j || (p<=(i+j)/2 && v[p]<v[q]) )
{
a[x]=v[p];
p++;
}
else
{
a[x]=v[q];
q++;
}
}
for(int x=i; x<=j;x++)
v[x]=a[x];
}
int main()
{
int n;
in>>n;
for(int x=1;x<=n;x++)
in>>v[x];
mergesort(1,n);
for(int i=1;i<=n;i++)
out<<v[i]<<" ";
return 0;
}