Zachs Lösung ist sehr gut.
Trotzdem habe ich mich gefragt, warum es nötig ist zu sortieren. Wenn Sie die Permutation der Indizes verwenden, verwenden Sie die Werte als Zeiger auf das alte Array.
Dies kann die Notwendigkeit beseitigen, das Array an erster Stelle zu sortieren. Dies ist keine Lösung, die in allen Fällen verwendet werden kann, aber es wird in den meisten Fällen gut funktionieren.
Zum Beispiel:
a = [45,89,22,31,23,76];
b = [5,3,2,1,0,4]
Nun, wenn Sie in ein durch die Werte stutzen wollen, können Sie so etwas wie (Pseudo-Code) tun:
for i=0 to 4
{
process(a[i]);
}
Wenn Sie möchten, Schleife durch die Werte in der neuen Reihenfolge, tun:
for i=0 to 4
{
process(a[b[i]]);
}
Wie erwähnt Ohr Diese Lösung kann in vielen Fällen ausreichend sein, in einigen anderen Fällen jedoch nicht. Für andere Fälle können Sie die Lösung von Zach verwenden.Aber für die Fälle, in denen diese Lösung verwendet werden kann, ist es besser, da überhaupt keine Sortierung erforderlich ist.
Eine typische Frage für ein technisches Interview. – Frank
Besser es so zu wissen :) – tunnuz