Pagini recente » Cod sursa (job #2573503) | Cod sursa (job #2413020) | Cod sursa (job #835101) | Cod sursa (job #1955487) | Cod sursa (job #2630197)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int DIM = 1e6 + 7;
int v[DIM];
int aux[DIM];
void merge_sort(int l, int r)
{
if(l == r)
return ;
int mid = (l + r) / 2;
merge_sort(l, mid);
merge_sort(mid + 1, r);
int st = l;
int dr = mid + 1;
int it = 0;
while(st <= mid || dr <= r)
{
if(dr > r)
{
aux[++it] = v[st++];
}
else
if(st > mid)
{
aux[++it] = v[dr++];
}
else
{
if(v[st] <= v[dr])
{
aux[++it] = v[st++];
}
else
{
aux[++it] = v[dr++];
}
}
}
for(int i = r; i >= l; --i)
{
v[i] = aux[it--];
}
}
main()
{
int n;
fin >> n;
for(int i = 1; i <= n; ++i)
{
fin >> v[i];
}
merge_sort(1, n);
for(int i = 1; i <= n; ++i)
fout << v[i] << ' ';
}