#include <stdio.h> void swap(int*,int*); void quicksort(int, int, int*); #define N 8 static int a[N] = { 5, 1, 3, 6, 2, 4, 8, 7 }; main() { { int i; printf(" "); for(i=0;i<N;i++) printf("%d ",a[i]); printf("\n"); } quicksort(0,N-1,a); } void quicksort(int lo, int hi, int a[]) { int i,j,x; if (lo < hi) { i = lo; j = hi; x = a[i]; while(i<=j) { while (a[i]<x) i++; while (a[j]>x) j--; if (i<=j) { swap(&a[i],&a[j]); { int i; printf("%d %d: ",lo,hi); for(i=0;i<N;i++) printf("%d ",a[i]); printf("\n"); } i++; j--; } } quicksort(lo,j,a); quicksort(i,hi,a); } } void swap(int *x, int *y) { int z; z = *x; *x = *y; *y = z; }