Problema desafiante....
Le he dado bastantes vueltas a este problema, que opinais?
5. Dado el siguiente método :
static void ordenar (double lista[]) { 1
for (int i = 0; i < lista.length; i++) 2
for (int j = lista.length-1; j > i; j--) 3
if (lista[j] < lista[j-1]) intercambiar (lista, j, j-1); 4
}
¿Qué modificaciones habrÃa que realizar en las lÃneas 1 y 4 de este método para quedicho método sea aplicable a cualquier tipo de datos de entrada. Defina las clases y/o
interfaces adicionales que sean necesarias.
static void ordenar (double lista[]) {
double por Object
if (lista[j] < lista[j-1]) intercambiar (lista, j, j-1);
para eso puedes implementar el interfaz Comparable en cada clase que quieras usar, esto te obliga a tener un método compareTo(Object o1) y asà la lÃnea quedarÃa como esto
if(lista[j].compareTo(lista[j-1]) intercambiar(lista,j,j-1);
cada implementación de compareTo(Object o1) de cada clase dependerá del que desarrolle dicha clase. por ejemplo no es lo mismo ordenar peras que limones, si las peras las ordenas por el peso y los limones por el tono de amarillo, cada una debe saber cómo ordenarse.
saludos.
double por Object
if (lista[j] < lista[j-1]) intercambiar (lista, j, j-1);
para eso puedes implementar el interfaz Comparable en cada clase que quieras usar, esto te obliga a tener un método compareTo(Object o1) y asà la lÃnea quedarÃa como esto
if(lista[j].compareTo(lista[j-1]) intercambiar(lista,j,j-1);
cada implementación de compareTo(Object o1) de cada clase dependerá del que desarrolle dicha clase. por ejemplo no es lo mismo ordenar peras que limones, si las peras las ordenas por el peso y los limones por el tono de amarillo, cada una debe saber cómo ordenarse.
saludos.
