#include #include void print(int a[]) { for (int i = 0; i < 10; i++) { printf("%2d ", a[i]); } printf("\n"); } int partition(int a[], int p, int r) { printf("Before: "); print(a); int x = a[r]; int j = p - 1; for (int i = p; i < r; i++) { if (x <= a[i]) { j = j + 1; int temp = a[j]; a[j] = a[i]; a[i] = temp; } } a[r] = a[j + 1]; a[j + 1] = x; printf("After: "); print(a); printf("Pivot == %d\n", a[j+1]); return (j + 1); } void quickSort(int a[], int p, int r) { if (p < r) { int q = partition(a, p, r); quickSort(a, p, q - 1); // sort the left part recursively quickSort(a, q + 1, r); // sort the right part } } int main() { int a[] = { 1, 9, 0, 5, 6, 7, 8, 2, 4, 3}; quickSort(a, 0, 9); print(a); system("pause"); }