Header Ads Widget

Responsive Advertisement

Marge Sort



 

#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;
}

Post a Comment

0 Comments