Pagini recente » Cod sursa (job #1314724) | Cod sursa (job #2198907) | Cod sursa (job #1079789) | Cod sursa (job #686465) | Cod sursa (job #2126161)
#include <iostream>
#include <fstream>
#define NM 500002
using namespace std;
int n, v[NM], vaux[NM];
void sort1 (int a, int b, int k)
{
if(b - a + 1 <= 1)
return;
int m = (b + a) / 2;
sort1(a, m, k + 1);
sort1(m + 1, b, k + 1);
for(int i = a; i <= b; i++)
vaux[i] = v[i];
int p1 = a, p2 = m + 1;
for(int i = a; i <= b; i++)
{
if(p1 <= m && (vaux[p1] < vaux[p2] || p2 > b))
{
v[i] = vaux[p1];
p1++;
}
else
{
v[i] = vaux[p2];
p2++;
}
}
}
int main()
{
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
fin >> n;
for(int i = 1; i <= n; i++)
fin >> v[i];
sort1(1, n, 0);
for(int i = 1; i <= n; i++)
fout << v[i] << " ";
return 0;
}