Pagini recente » Cod sursa (job #1421061) | Cod sursa (job #1440363) | Cod sursa (job #898420) | Cod sursa (job #1876102) | Cod sursa (job #1019656)
#include <stdio.h>
#include <stdlib.h>
void merge(int a[], int low, int mid, int high)
{
int b[10000];
int i = low, j = mid + 1, k = 0;
while (i <= mid && j <= high) {
if (a[i] <= a[j])
b[k++] = a[i++];
else
b[k++] = a[j++];
}
while (i <= mid)
b[k++] = a[i++];
while (j <= high)
b[k++] = a[j++];
k--;
while (k >= 0) {
a[low + k] = b[k];
k--;
}
}
void mergesort(int a[], int low, int high)
{
if (low < high) {
int m = (high + low)/2;
mergesort(a, low, m);
mergesort(a, m + 1, high);
merge(a, low, m, high);
}
}
int main()
{
int p[20],n,i;
FILE *f=fopen("input.txt","r"),*g=fopen("output.txt","w");
fscanf(f,"%d",&n);
for (i=1;i<=n;i++)
fscanf(f,"%d",&p[i]);
mergesort(p,1,n);
//interclas(p,1,(n+1)/2,n);
for (i=1;i<=n;i++)
fprintf(g,"%d ",p[i]);
return 0;
}