Pagini recente » Cod sursa (job #825462) | Cod sursa (job #3133994) | Cod sursa (job #2285777) | Infoarena cauta sponsori | Cod sursa (job #2200863)
#include <bits/stdc++.h>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int aux[500001], v[500001], n;
void merge(int v[], int st, int dr, int mij)
{
int poz = st;
int i = st;
int j = mij + 1;
while( i <= mij || j <= dr)
{
if(j > dr || (i <= mij && v[i] < v[j]))
{
aux[poz] = v[i];
i++;
}
else
{
aux[poz] = v[j];
j++;
}
poz++;
}
for(i = st; i <= dr; i++)
v[i] = aux[i];
}
void mergeSort(int v[], int st, int dr)
{
int mij;
if(st < dr)
{
mij = (st+dr)/2;
mergeSort(v, st, mij);
mergeSort(v, mij+1, dr);
}
else
return;
merge(v, st, dr, mij);
}
int main()
{
f >> n;
for(int i = 1; i <= n; i++)
f >> v[i];
mergeSort(v, 1, n);
for(int i = 1; i <= n; i++)
g << v[i] << " ";
return 0;
}