Header Ads Widget

Responsive Advertisement

Quick 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");
}

int partition(int arr[], int low, int high)
{
    int pivot = arr[low];
    int start = low;
    int end = high;
    int temp;
    while (start < end)
    {
        while (arr[start] <= pivot)
        {
            start++;
        }
        while (arr[end] > pivot)
        {
            end--;
        }
        if (start < end)
        {
            temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
        }
    }
    if (start > end)
    {
        temp = arr[low];
        arr[low] = arr[end];
        arr[end] = temp;
    }
    return end;
}

void quickSort(int arr[], int low, int high)
{
    int loc;
    if (low < high)
    {
        loc = partition(arr, low, high);
        quickSort(arr, low, loc - 1);
        quickSort(arr, loc + 1, high);
    }
}

int main()
{
    int arr[] = {5, 1, 6, 2, 9, 8, 16, 88,2,1,13};
    int size = sizeof(arr) / sizeof(int);
    printArr(arr, size);
    quickSort(arr, 0, size - 1);
    printf("After Marge Sort ");
    printArr(arr, size);
    return 0;
}

Post a Comment

0 Comments