Pagini recente » Cod sursa (job #292363) | Cod sursa (job #424323) | Cod sursa (job #3236188) | Cod sursa (job #1091933) | Cod sursa (job #1239015)
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int n;
FILE *fin;
FILE *fout;
void afis(int *v)
{
int i;
for (i = 0; i < n; i++)
printf("%d ",v[i]);
printf("\n");
}
void merg(int *v, int l, int mid, int r)
{
int i, j, c[100], k, x;
i = l;
j = mid + 1;
x = 0;
while(i <= mid && j <= r)
{
if(v[i] < v[j])
{
c[x] = v[i];
i++;
}
else
{
c[x] = v[j];
j++;
}
x++;
}
while(i <= mid)
{
c[x] = v[i];
i++;
x++;
}
while(j <= r)
{
c[x] = v[j];
j++;
x++;
}
for(k = 0; k < x; k++)
v[l + k] = c[k];
}
void mergesort(int *v, int l, int r)
{
if (l < r)
{
int mid = (l + r) / 2;
mergesort(v, l, mid);
mergesort(v, mid + 1, r);
merg(v, l, mid, r);
}
}
int main()
{
fin = fopen("vector.in", "r");
fout = fopen("vector.out", "w");
int v[100], aux, i;
while (fscanf(fin, "%d", &aux) == 1)
{
v[n] = aux;
n++;
}
mergesort(v, 0, n - 1);
for (i = 0; i < n; i++)
{
fprintf(fout, "%d ", v[i]);
}
fclose(fin);
fclose(fout);
return 0;
}