La solution de Zach est très bonne. Pourtant, je me demandais pourquoi il est nécessaire de trier. Si vous avez la permutation des indices, utilisez les valeurs comme un pointeur vers l'ancien tableau.
Cela peut éliminer le besoin de trier le tableau en premier lieu. Ce n'est pas une solution qui peut être utilisée dans tous les cas, mais cela fonctionnera bien dans la plupart des cas.
Par exemple:
a = [45,89,22,31,23,76];
b = [5,3,2,1,0,4]
Maintenant, si vous voulez élaguer à travers les valeurs un, vous pouvez faire quelque chose comme (pseudo-code):
for i=0 to 4
{
process(a[i]);
}
Si vous voulez boucle à travers les valeurs dans le nouvel ordre, faire:
for i=0 to 4
{
process(a[b[i]]);
}
Comme mentionné oreille En outre, cette soluion peut suffire dans de nombreux cas, mais peut ne pas l'être dans d'autres cas. Pour les autres cas, vous pouvez utiliser la solution de Zach.Mais pour les cas où cette solution peut être utilisée, c'est mieux car aucun tri n'est nécessaire du tout.
Une question typique pour un entretien technique. – Frank
Mieux vaut le savoir ainsi :) – tunnuz