Hello friends!!!!!
Merge Sort
#include <stdio.h>
void Merge(int a[], int left, int mid, int right) {
int i, j, i1, j1, L[100], R[100], k;
i1 = mid - left + 1;
j1 = right - mid;
for (i = 0; i < i1; i++) {
L[i] = a[left + i];
}
for (j = 0; j < j1; j++) {
R[j] = a[mid + 1 + j];
}
i = 0;
j = 0;
k = left;
while (i < i1 && j < j1) {
if (L[i] < R[j]) {
a[k] = L[i];
i++;
} else {
a[k] = R[j];
j++;
}
k++;
}
while (i < i1) {
a[k] = L[i];
i++;
k++;
}
while (j < j1) {
a[k] = R[j];
j++;
k++;
}
}
void Merge_Sort(int a[], int left, int right) {
int mid;
if (left < right) {
mid = (left + right) / 2;
Merge_Sort(a, left, mid);
Merge_Sort(a, mid + 1, right);
Merge(a, left, mid, right);
}
}
int main() {
int a[100], i, n;
printf("Enter n Value: ");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("Enter Value: ");
scanf("%d", &a[i]);
}
Merge_Sort(a, 0, n - 1);
printf("Sorted array: \n");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}