Código
void swap(int &a,int &b){ int aux = a; a = b; b = aux; } int particion(std::vector<int>& array, int inicio, int final){ int piv = array[inicio]; int i = inicio + 1; for(int j = i; j <= final; j++){ if(array[j] > piv){ swap(array[i], array[j]); i++; } } swap(array[inicio], array[i - 1]); return i - 1; } void quickSort(std::vector<int>& array, int inicio, int final){ if(inicio < final){ int piv = particion(array, inicio, final); quickSort(array, inicio, piv - 1); quickSort(array, piv + 1, final); } }
esto es ejemplo d lo que aparece en pantalla
arreglo desordenado
10
3
4
9
7
1
5
8
2
6
ordenado
1066696018
10
9
8
7
6
5
4
3
2