#include #include int ve = 0; void quick_sort(int *v, int inicio, int fim){ if(inicio >= fim) return; int posPivot = (inicio+fim)/2; int pivot = v[posPivot]; int sp = inicio; int sv = fim; while(sp != sv){ ve++; if(sp < posPivot){ if(v[sp] > pivot){ v[posPivot] = v[sp]; posPivot = sp; }else{ sp++; } }else if(sv > posPivot){ if(v[sv] < pivot){ v[posPivot] = v[sv]; posPivot = sv; }else{ sv--; } } } v[sv] = pivot; quick_sort(v, inicio, sv-1); quick_sort(v, sv+1, fim); } int main(){ int v[3] = {7,4,2}; for(int i = 0; i < 3; ++i) printf("%d ", v[i]); printf("\n"); quick_sort(v, 0, 2); for(int i = 0; i < 3; ++i) printf("%d ", v[i]); printf("\n"); printf("%d\n", ve); return 0; }