#include <stdio.
h>
int a[50], temp[50];
void merge(int low, int mid, int high) {
int i = low, j = mid + 1, k = low;
while(i <= mid && j <= high)
temp[k++] = (a[i] < a[j]) ? a[i++] : a[j++];
while(i <= mid) temp[k++] = a[i++];
while(j <= high) temp[k++] = a[j++];
for(i = low; i <= high; i++) a[i] = temp[i];
}
void mergesort(int low, int high) {
if(low < high) {
int mid = (low + high) / 2;
mergesort(low, mid);
mergesort(mid + 1, high);
merge(low, mid, high);
}
}
int main() {
int n, i;
printf("Enter number of elements: ");
scanf("%d", &n);
printf("Enter %d elements:\n", n);
for(i = 0; i < n; i++) scanf("%d", &a[i]);
mergesort(0, n - 1);
printf("Sorted array:\n");
for(i = 0; i < n; i++) printf("%d ", a[i]);
return 0;
}