Pagini recente » Cod sursa (job #2632958) | Cod sursa (job #1873074) | Cod sursa (job #2156960) | Cod sursa (job #2883508) | Cod sursa (job #1250052)
#include <fstream>
#include<iostream>
using namespace std;
int v[10000], w[10000];
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)/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()
{
FILE *writing=fopen("algsort.out", "w");
for (int i=1;i<=N;i++)
fprintf(writing, "%d ", v[i]);
}
int main()
{
citire();
mergesort(1, N);
afisare();
}