Quick Sort
#include <stdio.h> void swap(int*, int*); int partition(int[], int, int); void quicksort(int[], int, int); void swap(int *p, int *q) { int temp = *p; *p = *q; *q = temp; } int partition(int a[], int l, int h) { int pivot = a[l]; int i = l - 1; int j = h + 1; while (1) { do { i++; } while (a[i] < pivot); do { j--; } while (a[j] > pivot); if (i >= j) return j; swap(&a[i], &a[j]); } } void quicksort(int a[], int l, int h) { if (l < h) { int s = partition(a, l, h); quicksort(a, l, s); ...