Pagini recente » Cod sursa (job #2565748) | Cod sursa (job #1545702) | Cod sursa (job #249890) | Cod sursa (job #2658967) | Cod sursa (job #1238639)
#include <fstream>
#include<algorithm>
using namespace std;
#define MX 500000
ifstream f1("algsort.in");
ofstream f2("algsort.out");
int n, a[MX], i;
void interclas(int st, int dr, int m)
{
int d[MX], i=st, j=m+1,k=st;
while (i<=m && j<=dr )
if (a[i]<=a[j] ) d[k++]=a[i++];
else d[k++]=a[j++];
while (i<=m) d[k++]=a[i++];
while (j<=dr) d[k++]=a[j++];
for (i=st; i<=dr; i++)
a[i]=d[i];
}
void mergesort(int st, int dr)
{
if (st>=dr) return;
int m= (st+dr)/2;
mergesort(st,m);
mergesort(m+1,dr);
interclas(st,dr,m);
}
int main()
{
f1>>n;
for (i=1;i<=n;i++)
f1>>a[i];
sort(a+1,a+n+1);
for (i=1; i<=n; i++)
f2<<a[i]<<" ";
return 0;
}