The Tech Platform

Nov 2, 20201 min

Implementation of Quick Sort Algorithm in C:

# include <stdio.h>
 

 
// to swap two numbers
 
void swap(int* a, int* b)
 
{
 
int t = *a;
 
*a = *b;
 
*b = t;
 
}
 

 
int partition (int arr[], int low, int high)
 
{
 
int pivot = arr[high]; // selecting last element as pivot
 
int i = (low - 1); // index of smaller element
 

 
for (int j = low; j <= high- 1; j++)
 
{
 
// If the current element is smaller than or equal to pivot
 
if (arr[j] <= pivot)
 
{
 
i++; // increment index of smaller element
 
swap(&arr[i], &arr[j]);
 
}
 
}
 
swap(&arr[i + 1], &arr[high]);
 
return (i + 1);
 
}
 
/*
 
a[] is the array, p is starting index, that is 0,
 
and r is the last index of array.
 
*/
 
void quicksort(int a[], int p, int r)
 
{
 
if(p < r)
 
{
 
int q;
 
q = partition(a, p, r);
 
quicksort(a, p, q-1);
 
quicksort(a, q+1, r);
 
}
 
}
 

 

 
// function to print the array
 
void printArray(int a[], int size)
 
{
 
int i;
 
for (i=0; i < size; i++)
 
{
 
printf("%d ", a[i]);
 
}
 
printf("\n");
 
}
 

 
int main()
 
{
 
int arr[] = {9, 7, 5, 11, 12, 2, 14, 3, 10, 6};
 
int n = sizeof(arr)/sizeof(arr[0]);
 

 
// call quickSort function
 
quicksort(arr, 0, n-1);
 

 
printf("Sorted array: \n");
 
printArray(arr, n);
 
return 0;
 
}

Resource: Interviewbit.com

The Tech Platform

www.thetechplatform.com

    0