[c language=”++”]
#include <stdio.h>
#include <iostream>
#include <vector>
#include <stack>
#include <algorithm>
#include <string>
using namespace std;
int partition(vector<int>&arr, int l, int r)
{
int pivot = arr[r];
int k = l;
for (int i = l; i < r; ++i)
{
if (arr[i] < pivot)
swap(arr[i], arr[k++]);
}
swap(arr[k], arr[r]);
return k;
}
void quickSort(vector<int>&arr, int l, int r)
{
if (l >= r) return;
int k = partition(arr, l, r);
quickSort(arr, l, k – 1);
quickSort(arr, k + 1, r);
}
int main()
{
vector<int> input = { 4, 5, 1, 6, 2, 7, 3, 8 };
quickSort(input, 0,input.size() – 1);
return 0;
}
[/c]