#include <stdio.h>
void printArr(int arr[], int size)
{
printf("The Array is : \n");
for (int i = 0; i < size; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void marge(int arr[], int low, int mid, int high)
{
int i, j, k, b[100];
i = low;
j = mid + 1;
k = low;
while (i <= mid && j <= high)
{
if (arr[i] < arr[j])
{
b[k] = arr[i];
i++;
k++;
}
else
{
b[k] = arr[j];
j++;
k++;
}
}
while (i <= mid)
{
b[k] = arr[i];
i++;
k++;
}
while (j <= high)
{
b[k] = arr[j];
j++;
k++;
}
for (i = low; i <= high; i++)
{
arr[i] = b[i];
}
}
void margeSort(int arr[], int low, int high)
{
if (low < high)
{
int mid = (high + low) / 2;
margeSort(arr, low, mid);
margeSort(arr, mid + 1, high);
marge(arr, low, mid, high);
}
}
int main()
{
int arr[] = {1,5,2,9,6,3};
int size = sizeof(arr) / sizeof(int);
printArr(arr, size);
margeSort(arr, 0, size - 1);
printf("After Marge Sort ");
printArr(arr, size);
return 0;
}

0 Comments