Question 3 - Quick Sort

 avatar
itsLu
c_cpp
2 years ago
959 B
30
Indexable
/* 3. Write a function to sort numbers
in an array using quick sort algorithm. */
#include <iostream>
using namespace std;

void quick_sort (int arr[], int l, int r)
{
    if (l < r)
        {
        int pivot = arr[l], leftcounter = l + 1, rightcounter = r, temp;
        while (leftcounter <= rightcounter)
        {
            while (arr[leftcounter] <= pivot && leftcounter <= r)
                leftcounter++;
            while (arr[rightcounter] > pivot && rightcounter > l)
                rightcounter--;
            if (leftcounter < rightcounter)
            {
                temp = arr[rightcounter];
                arr[rightcounter] = arr[leftcounter];
                arr[leftcounter] = temp;
            }
        }
        temp = arr[l];
        arr[l] = arr[rightcounter];
        arr[rightcounter] = temp;
        quick_sort(arr, l, rightcounter - 1);
        quick_sort(arr, rightcounter + 1, r);
        }
}
Editor is loading...
Leave a Comment