Diese Frage unterscheidet sich von anderen Fragen zum Thema Sortieren einer Liste basierend auf der Reihenfolge einer anderen Liste in dem Sinne, dass die Bestellliste nicht alle enthält die in der Liste verwendeten Schlüssel.Algorithmus zum Sortieren einer Liste basierend auf der Reihenfolge einer anderen, partiellen Liste
Angenommen, ich habe eine Liste [a, b, c, d, e]
und meine Bestellliste [b, d, e]
.
Jetzt ändere ich meine Bestellliste zu [b, e, d]
. Gibt es einen relativ einfachen Algorithmus, um die ursprüngliche Liste wiederherzustellen? Nehmen wir an, es ist nicht wichtig, ob die letzte Bestellung [a, b, e, c, d]
oder [a, b, c, e, d]
ist, und die Bestellliste wird immer eine Teilmenge der ursprünglichen Liste sein.
Edit: einige Fragen über die endgültige Bestellung Aufräumen, von meinem Beispiel: e
bestellt wurde zwischen b
und d
, und in der sortierten Liste sein, es ist egal, ob e
-b
oder d
benachbarte landet. Aber zum Beispiel, wenn aufgrund dieser Sortierung a
nach b
bewegt - während eine rechtliche Bestellung - es ist nicht wünschenswert.
Ist Ergebnis "[b, e, d, a, c]" legal? Ich bin nicht 100% sicher, was du meinst –
Gute Frage, aber nein, ich denke entlang der Linien, in der Reihenfolge Liste, indexOf (e)
Niel