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;

}