#include void troca(int *x, int *y) { int t = *x; *x = *y; *y = t; } /* troca */ void imprimeVetor(int *v, int n) { int i; for (i = 0; i < n; i++) printf("%d ", v[i]); printf("\n"); } void quick(int *v, int n) { imprimeVetor(v,n); if (n <= 1) return; else { int i,j, pivot; pivot = v[0]; i = 1; j = n-1; do { while (v[i]pivot) j--; if (i<=j) { troca(&v[i],&v[j]); i++; j--; } } while (i<=j); troca(&v[i-1],&v[0]); imprimeVetor(v,n); quick(v, i-1); quick(&v[i], n-i); } } int main() { int v[] = {5, 7, 3, 2, 0, 9, 1, 4, 6, 8}; int v2[] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; imprimeVetor(v2,10); quick(v2, 10); imprimeVetor(v2,10); return 0; }