#include #include #define SWAP(x, y, z) ( ((z)=(x)), ((x)=(y)), ((y)=(z)) ) //#define SWAP(x, y, t) ( (t)=(x),(x)=(y),(y)=(t)) int partition(int array[], int left, int right); void quicksort(int array[], int left, int right); void quick_sort(int array[], int size); int main(int argc, char *argv[]) /* testing */ { int size=0, i; int array[]={1,3,5,7,9,2,4,6,8,10}; size=sizeof(array)/sizeof(array[0]); quick_sort(array, size); for (i=0; i right*/ { int pivot=partition(array, left, right);/* finish sort each side of p*/ quicksort(array, left, pivot-1); /* recursive quicksort left */ quicksort(array, pivot+1, right); /* recursive quicksort right*/ } } void quick_sort(int array[], int size) /* wrapper */ { quicksort(array, 0, size-1); }