Pagini recente » Cod sursa (job #1713954) | Cod sursa (job #2900804) | Cod sursa (job #87234) | Cod sursa (job #1536574) | Cod sursa (job #1238634)
#include <fstream>
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];
mergesort(1,n);
for (i=1; i<=n; i++)
f2<<a[i]<<" ";
return 0;
}