Pagini recente » Cod sursa (job #2544196) | Cod sursa (job #1789321) | Cod sursa (job #3167495) | Cod sursa (job #1220186) | Cod sursa (job #1250118)
#include <fstream>
#include<iostream>
using namespace std;
long int v[500001], w[500001];
int N;
void citire()
{
fstream f("algsort.in");
f>>N;
int i;
for (i=1;i<=N;i++)
f>>v[i];
}
void mergesort(int st, int dr)
{
if (st<dr)
{
int i, j, k, mijl=st+(dr-st)/2;
mergesort(st, mijl);
mergesort(mijl+1, dr);
i = st, j = mijl + 1;
k = st;
while (i <= mijl && j <= dr)
{
if (v[i] < v[j])
w[k++] = v[i++];
else
w[k++] = v[j++];
}
while (i <= mijl)
w[k++] = v[i++];
while (j <= dr)
w[k++] = v[j++];
for (k = st; k <= dr; k++)
v[k] = w[k];
}
}
void afisare()
{
ofstream g("algsort.out");
for (int i=1;i<=N;i++)
g<<v[i]<<' ';
}
int main()
{
citire();
mergesort(1, N);
afisare();
}