A basic quick sort algorithm implemented in C++.
void swap (int* a, int* b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
void quicksort(int arr[], int left, int right) {
int i, last;
if (left >= right) return;
// If there exists a pivot selection policy,
// do it in this place.
last = left;
for (i = left + 1; i <= right; ++i) {
if (arr[i] <= arr[left]) {
swap(&arr[++last], &arr[i]);
}
}
swap(&arr[left], &arr[last]);
quicksort(arr, left, last - 1);
quicksort(arr, last + 1, right);
}
Comments