Pagini recente » Cod sursa (job #1425552) | Cod sursa (job #2481801) | Cod sursa (job #498746) | Cod sursa (job #3197904) | Cod sursa (job #1434982)
#include <fstream>
#define dim 500001
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int Aux[dim],A[dim],i,n,k;
void mergesort(int a[], int aux[], int st, int dr)
{
int i,j,k,ii;
int mijl=st+(dr-st)/2;
if(st>=dr)
return;
mergesort(a,aux,st,mijl);
mergesort(a,aux,mijl+1,dr);
for(i=st, j=mijl+1, k=st-1;i<=mijl&&j<=dr;)
if(a[i]<=a[j])
{
aux[++k]=a[i];
i++;
}
else
{
aux[++k]=a[j];
j++;
}
for( ii=i;ii<=mijl;ii++)
aux[++k]=a[ii];
for( ii=j;ii<=dr;ii++)
aux[++k]=a[ii];
for( i=st;i<=dr;i++)
a[i]=aux[i];
return ;
}
int main()
{
fin>>n;
for(i=1;i<=n;i++)
fin>>A[i];
mergesort(A,Aux,1,n);
for(i=1;i<=n;i++)
fout<<A[i]<<" ";
return 0;
}