Duda parcial jul2010

Re: Duda parcial jul2010

de Lorena Etcheverry -
Número de respuestas: 0
Hola Alejandro:

la solución es correcta, porque lo que hace es ordenar aplicando los criterios en orden INVERSO al deseado.

De esta forma te aseguras que los empates se resuelven solos según el criterio deseado:
1) cuando vas a ordenar la lista por el criterio x1, la misma ya está ordenada por el criterio x2 y OrdenarPorCampo conserva el orden (asi que no se desordena)
2) en caso de empate en el último criterio (que es el 1ero en ser evaluado) es necesario que devuelvas respetando el orden en que aparecen en la lista original. Esto lo garantiza ObtenerMenorPersona.

Podría hacerse al reves, ordenando primero por el criterio x1 y en caso de empate ordenando por x2, etc pero te das cuenta que el algoritmo es mas complicado y que deberías, cuando apliques el último criterio, poder desempatar en función del orden ORIGINAL (mantendrías una copia??).

Desde el punto de vista del uso de memoria esta solución puede ser menos eficiente, ya que recorre necesariamente la lista parámetro tantas veces como criterios tengas y cada vez CREA una copia limpia de la lista, pero NO estamos evaluando eso en este ejercicio y recalco que el algoritmo es mucho mas simple y elegante.

slds
Lorena