Pagini recente » Cod sursa (job #1091005) | Cod sursa (job #2624713) | Cod sursa (job #85609) | Cod sursa (job #1664185) | Cod sursa (job #1250070)
#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=0; j=st;
while (j<=mijl) w[i++]=v[j++];
i=0; j=mijl+1; k=st;
while (i<=mijl-st && j<=dr)
{
if (w[i] <= v[j]) v[k++] = w[i++];
else v[k++] = v[j++];
}
while (k < j)
v[k++] = w[i++];
}
}
void afisare()
{
ofstream g("algsort.out");
for (int i=1;i<=N;i++)
g<<v[i]<<' ';
}
int main()
{
citire();
mergesort(1, N);
afisare();
}