#include #include #include #define MAXSIZE 1000 int A[MAXSIZE]; void quickSort ( int i , int j ) { int pivot; int leftArray[MAXSIZE], rightArray[MAXSIZE]; int lsize, rsize; int k, idx; if (i == j) return; pivot = A[i]; k = i; lsize = rsize = 0; /* Separate out the left and right parts */ while (k < j) { ++k; if (A[k] < pivot) leftArray[lsize++] = A[k]; else rightArray[rsize++] = A[k]; } /* Copy back the left part, the pivot and the right part to the original array */ k = i; for (idx=0; idx 0) quickSort(i,i+lsize-1); /* Recursive call on the left part */ if (rsize > 0) quickSort(j-rsize+1,j); /* Recursive call on the right part */ } void printArray ( int s ) { int i; for (i=0; i