Ataca la pregunta de forma incremental.
- Matriz de cosas. Ordénalo. Eso significa que debe mirar java.util.Arrays, que es una clase llena de métodos auxiliares para matrices de todo tipo.
- Ajá, hay un método de clasificación para, por ejemplo, int: public static void sort (int [] a)
- Hmm … no hay “ordenar al revés”. Lo que necesita es alguna forma de ordenar utilizando su propia lógica personalizada, como un Comparador. (Ver java.util.Comparator).
- Desafortunadamente, Comparator es para tipos de referencia, no para tipos primitivos, y eso no se “arreglará” hasta Java 10 como muy pronto (IIRC). Por lo tanto, no hay forma de anular el orden de clasificación.
- ¿Tal vez podríamos ordenarlo y luego revertir la matriz? Una búsqueda rápida en Google más tarde y tenemos toneladas de ejemplos sobre cómo revertir eficientemente una matriz …
- O podríamos aprovechar la localidad de caché y simplemente negar toda la matriz antes de ordenarla, luego ordenarla y luego negarla nuevamente. (Nota: esto tiene un caso límite: el negativo de Integer.MIN_VALUE sigue siendo Integer.MIN_VALUE. Dejaré la solución al lector).
- Por último, puede cortar y pegar el método Arrays.sort () y cambiar o viceversa …