Pagini recente » Cod sursa (job #2130117) | Cod sursa (job #1719708) | Cod sursa (job #989019) | Cod sursa (job #2456046) | Cod sursa (job #1454049)
#include <fstream>
#include <cstring>
using namespace std;
int i, n, a[500001], b[500001];
void sortare (int s, int d) {
int m, cont = 0, i, j;
if (s != d) {
m = (s+d)/2;
sortare (s, m);
sortare(m+1, d);
for (i = s, j = m+1; i <= m and j <= d;)
if (a[i] < a[j])
b[++cont] = a[i], i++;
else
b[++cont] = a[j], j++;
for (; i <= m; i++)
b[++cont] = a[i];
for (; j <= d; j++)
b[++cont] = a[j];
memcpy(a+s, b+1, sizeof(int)*(d-s+1));
}
}
int main () {
ifstream fi("algsort.in");
ofstream fo("algsort.out");
fi >> n;
for (i = 1; i <= n; i++)
fi >> a[i];
sortare(1, n);
for (i = 1; i <= n; i++)
fo << a[i] << ' ';
return 0;
}