/* Adapted from http://24bytes.com/Quick-Sort.html */
int partition(int a[], int p, int r)
{
int x, j;
int i;
x = a [r];
j = p - 1;
for (i = p; i < r; i++) {
if (x <= a[i]) {
int temp;
j = j + 1;
temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
a[r] = a[j + 1];
a[j + 1] = x;
return (j + 1);
}
void quickSort(int a[], int p, int r)
{
int q;
if (p < r) {
q = partition(a, p, r);
quickSort(a, p, q - 1);
quickSort(a, q + 1, r);
}
}