[Métodos de ordenamiento] QuickSort [C++]

Iniciado por 2Fac3R, 29 Julio 2015, 20:47 PM

0 Miembros y 1 Visitante están viendo este tema.

2Fac3R

Buenas!.

El método de ordenamiento quicksort es un método muy eficaz a la hora de ordenar datos, les comparto un código que implemente en un proyecto escolar, está basado para ordenar fechas de salida de vuelos, pero ustedes pueden implementarlo para ordenar cualquier otro tipo de dato.

Código (cpp) [Seleccionar]

void QuickSortF( N_Vuelo** arr, int izq, int der ){
int g, h, medio;
N_Vuelo *pivote, *aux;
medio = ( izq + der )/2;
pivote = arr[medio];
g = izq;
h = der;

while( g <= h ){

while ( arr[g]->getDato()->getFS(1) < pivote->getDato()->getFS(1) ) { g++; }
while ( pivote->getDato()->getFS(1) < arr[h]->getDato()->getFS(1) ) { h--; }

if( g <= h ){
aux = arr[g];
arr[g] = arr[h];
arr[h] = aux;
g++;
h--;
}
}

if ( izq < h ) { QuickSortF(arr, izq, h); }
if ( g < der ) { QuickSortF(arr, g, der); }
}


En los condicionales if iría la condición de ordenamiento de el tipo de dato que quieras implementar, cualquier duda y/o comentario hazmelo saber!.

Zalu2
Escuela de Hackers & Programación. http://ihackndev.blogspot.com/