Pagini recente » Cod sursa (job #492527) | Cod sursa (job #2072796) | Cod sursa (job #2822670) | Cod sursa (job #1522471) | Cod sursa (job #1438359)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int Aux[500001],A[500001],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()
{
f>>n;
for(i=1;i<=n;i++)
f>>A[i];
mergesort(A,Aux,1,n);
for(i=1;i<=n;i++)
g<<A[i]<<" ";
return 0;
}