Ho una matrice di doppi, in Java: arr1
che voglio ordinare. Molto probabilmente la prima opzione sarebbe il metodo di utilità Arrays.sort(double[])
.Ordina array e riflette le modifiche in un altro array
L'idea è che voglio le stesse modifiche (per esempio valore index i
viene scambiato con valore a index j
in arr1
) a riflettersi in un altro array di interi: arr2
(nel senso che i valori agli stessi indici vengono cambiati anche in arr2
).
C'è un modo semplice (un trucco) per realizzare questo in Java? O l'unico modo è di implementare l'algoritmo di ordinamento da solo?
UPDATE: vedo che gente suggerisce sostituendo i due array con un array di oggetti contenenti i 2 valori (uno arr1
e uno dal arr2
). Non porterebbe alcune sanzioni di efficienza. In altre parole, non è meno efficiente ordinare una matrice di oggetti rispetto a una matrice di tipi primitivi (raddoppia in questo caso)?
I dati sono completamente statici. È grande (si adatta alla memoria) ma statico.
Avere una matrice di indici Non ordinare l'array di valori, ordinare l'array di indici. Quindi utilizzare l'array di indici per puntare a entrambi gli array di valori. Vedere la soluzione in: 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
Questo è ciò che verrebbe definito un "ordinamento esterno". –