Pagini recente » Cod sursa (job #1716124) | Cod sursa (job #1705958) | Cod sursa (job #210824) | Cod sursa (job #121576) | Cod sursa (job #1183879)
#include<fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n,a[500005],aux[500005];
inline void MergeSort(int st,int dr)
{
if (st<dr)
{
int mij,i,j,lg;
mij=(st+dr)/2;
MergeSort(st,mij);
MergeSort(mij+1,dr);
i=st;
j=mij+1;
lg=1;
while (i<=mij && j<=dr)
{
if (a[i]<a[j])
{aux[lg]=a[i];i++;}
else {aux[lg]=a[j];j++;}
lg++;
}
while (i<=mij) aux[lg++]=a[i++];
while (j<=dr) aux[lg++]=a[j++];
j=st;
for (i=1;i<lg;i++,j++)
a[j]=aux[i];
}
}
int main()
{
int i;
fin>>n;
for (i=1;i<=n;i++)
fin>>a[i];
MergeSort(1,n);
for (i=1;i<=n;i++)
fout<<a[i]<<" ";
fout<<"\n";
return 0;
}