Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Algoritmo quicksort para un arreglo de *void */
- // Ejemplo de un funcion de comparacion:
- // "regPer" apunta a un arr[] de *void donde el primer elemento es una cadena
- #include <cstring>
- bool menorNomb(void* regPer1, void* regPer2) {
- void** arr1 = (void**) regPer1;
- void** arr2 = (void**) regPer2;
- if (strcmp((char*) arr1[0], (char*) arr2[0]) < 0)
- return true;
- return false;
- }
- void swap(void* ®Cur1, void* ®Cur2) {
- void* aux = regCur1;
- regCur1 = regCur2;
- regCur2 = aux;
- }
- void quick_sort(void* arr[], int izq, int der) {
- if (izq >= der)
- return;
- swap(arr[izq], arr[(izq + der) / 2]);
- int limite = izq;
- for (int i = izq + 1; i <= der; ++i)
- if (menorNomb(arr[i], arr[izq])) { // if (arr[i] < arr[izq])
- ++limite;
- swap(arr[limite], arr[i]);
- }
- swap(arr[izq], arr[limite]);
- quick_sort(arr, izq, limite - 1);
- quick_sort(arr, limite + 1, der);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement