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

0 Comments