0
0

More than 5 years have passed since last update.

QuickSort in C, C++, Java & Python

Posted at

Source: https://www.interviewbit.com/tutorial/quicksort-algorithm/

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

}

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0