Pagini recente » Cod sursa (job #791285) | Cod sursa (job #1457413) | Cod sursa (job #1001395) | Cod sursa (job #1799528) | Cod sursa (job #1265353)
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
const int N=500005;
int aux[N];
void merge (int st, int dr, int v[N])
{
int i, k, j;
int m=(st+dr)/2;
i=k=st;
j=m+1;
while ( i<=m && j<=dr)
if (v[i]<=v[j])
aux[k++]=v[i++];
else
aux[k++]=v[j++];
while (i<=m) aux[k++]=v[i++];
while (j<=dr) aux[k++]=v[j++];
for (i=st; i<=dr; i++)
v[i]=aux[i];
}
void ms(int st, int dr, int v[N])
{
if (st==dr) return;
int m=(st+dr)/2;
ms(st, m, v);
ms(m+1, dr, v);
merge (st, dr, v);
}
int main()
{
int a, n, st, dr, v[N];
in >> n;
for (int b=1; b<=n; b++)
in >> v[b];
ms (1, n, v);
for (int i=1; i<=n; i++)
out << v[i] << " ";
}