Foros del Web » Programación para mayores de 30 ;) » C/C++ »

QuickSort con struct

Estas en el tema de QuickSort con struct en el foro de C/C++ en Foros del Web. Hola, que tal. Quisiera saber si se puede utilizar el método de ordenamiento QuickSort con estructuras, es decir que me ordene el bloque completo. Por ...
  #1 (permalink)  
Antiguo 17/02/2016, 08:35
 
Fecha de Ingreso: noviembre-2015
Mensajes: 3
Antigüedad: 8 años, 5 meses
Puntos: 0
Pregunta QuickSort con struct

Hola, que tal.
Quisiera saber si se puede utilizar el método de ordenamiento QuickSort con estructuras, es decir que me ordene el bloque completo.
Por ejemplo, mi estructura guarda Nombre, Edad y Pais y quiero ordenar un lista de mayor edad a menor, pero que igual se ordenen en nombre y el pais con respecto a la edad.
Espero se entienda.

Esta es la funcion de QuickSort que conozco:
void QuickSort(int* arr, int izq, int der)
{
int i = izq, j = der, tmp;
int p = arr[(izq + der) / 2];

while (i <= j)
{
while (arr[i] < p)i++;
while (arr[j] > p) j--;
if (i <= j)
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++; j--;

}
}
if (izq < j)
QuickSort(arr, izq, j);
if (i < der)
QuickSort(arr, i, der);
}

Gracias
  #2 (permalink)  
Antiguo 17/02/2016, 09:06
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: QuickSort con struct

Por poder se puede, pero hay que tener una serie de características en cuenta:

  • No tiene demasiado sentido comparar dos estructuras entre sí a lo bestia... lo lógico es comparar los elementos de la estructura que te interesan para la ordenación.
  • A la hora de recolocar los elementos tienes que ser consciente de que una estructura puede tener punteros... ten cuidado con su manipulación.
No deberías encontrar demasiados problemas al modificar el algoritmo.


Un saludo
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.

Etiquetas: c++, programacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:24.