Tengo una matriz de dobles, en Java: arr1
que quiero ordenar. Lo más probable es que la primera opción sea el método de utilidad Arrays.sort(double[])
.Clasificar matriz y reflejar los cambios en otra matriz
La idea es que quiero los mismos cambios (por ejemplo, valor en index i
se intercambia con el valor en index j
en arr1
) a reflejarse en otra matriz de enteros: arr2
(en el sentido de que los valores en los mismos índices se cambian también en arr2
).
¿Hay una manera simple (un truco) para lograr esto en Java? ¿O la única forma es implementar el algoritmo de clasificación yo solo?
ACTUALIZACIÓN: Veo que personas recomiendan la sustitución de las dos matrices con una matriz de objetos que contienen los 2 valores (uno de arr1
y uno de arr2
). ¿No traería esto algunas penalizaciones de eficiencia? En otras palabras, ¿no es menos eficiente ordenar una matriz de objetos que una matriz de tipos primitivos (en este caso, los dobles)?
La información es completamente estática. Es grande (cabe en la memoria) pero estático.
Tener una variedad de índices. No ordene la matriz de valores, ordene la matriz de índices. Luego use la matriz de índice para apuntar a ambas matrices de valores. Consulte la solución en: http: //stackoverflow.com/questions/4859261/get-the-indices-of-an-array-after-sorting – Raihan
http://stackoverflow.com/questions/112234/sorting-matched-arrays -in-java – talnicolas
Esto es lo que se llamaría un "tipo externo". –