Hola,
Cita:
Iniciado por Profesor_Falken Es que hay que currase un poco el comparador.
Ciertamente, y agregando mi versión del mismo, aunque no estoy seguro que de exactamente los mismo resultados, posiblemente sea mas simple de darle mantenimiento. Ahora solo queda observar el caso de la Ñ/ñ, CH/ch y otros casos especiales.
Código Java:
Ver originalimport java.util.Comparator;
public class Ordenar implements Comparator<String> {
private int compare(char c1, char c2) {
if (i1 != i2) {
return i2 - i1;
}
}
@Override
if (o2.length() != o1.length()) {
return o1.length() - o2.length();
}
int length = o1.length();
int compare;
for (int i = 0; i < length; i++) {
compare = compare(o1.charAt(i), o2.charAt(i));
if (compare != 0) {
return compare;
}
}
return 0;
}
}
Cita:
Iniciado por Profesor_Falken ... comentar que el metodo sort de Java utiliza concretamente el algoritmo Dual-Pivot Quicksort de Vladimir Yaroslavskiy. ...
De eso no puedo estar completamente seguro, pero según la documentación de Oracle, usa el método 'merge sort' ligeramente optimizado. Lo único que sé es que es rápido y estable.
http://docs.oracle.com/javase/tutori...hms/index.html
Saludos,