La soluzione di Zach è molto buona.
Ancora, mi chiedevo perché c'è bisogno di ordinare. Se hai la permutazione degli indici, usa i valori come puntatore al vecchio array.
Ciò può eliminare la necessità di ordinare l'array in primo luogo. Questa non è una soluzione che può essere utilizzata in tutti i casi, ma funzionerà bene nella maggior parte dei casi.
Ad esempio:
a = [45,89,22,31,23,76];
b = [5,3,2,1,0,4]
Ora, se si vuole lop attraverso i valori in un, si può fare qualcosa di simile (pseudo-codice):
for i=0 to 4
{
process(a[i]);
}
Se si desidera ciclo attraverso i valori del nuovo ordine, fare:
for i=0 to 4
{
process(a[b[i]]);
}
Come accennato orecchio questa soluzione potrebbe essere sufficiente in molti casi, ma non in alcuni altri casi. Per altri casi è possibile utilizzare la soluzione di Zach.Ma per i casi in cui questa soluzione può essere utilizzata, è meglio perché non è necessario alcun ordinamento.
Una domanda tipica per un colloquio tecnico. – Frank
Meglio saperlo così :) – tunnuz