Pagini recente » Cod sursa (job #2532609) | Cod sursa (job #1400382) | Cod sursa (job #3156888) | Cod sursa (job #2762505) | Cod sursa (job #1019646)
#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;
scanf("%d",&n);
for (i=1;i<=n;i++)
scanf("%d",&p[i]);
mergesort(p,1,n);
//interclas(p,1,(n+1)/2,n);
for (i=1;i<=n;i++)
printf("%d ",p[i]);
return 0;
}