複数の順序付きリストがあります。残念ながら、アイテムの順序は単純なアルファまたは数値の比較ではありません。だから私が持っているのは次のようなものです:
List #1 List #2 List #3
groundhog groundhog easter
mothersday mayday mothersday
midsummer laborday halloween
christmas
そして、このことからグラウンドホッグ<マザーズデイよりも集められるのですが、グラウンドホッグとイースターの関係は不明です。リストからリストへのアイテムの順序が一貫していることを保証します。(つまり、どのリストに含まれていても、イースターは常にハロウィーンの前です)
しかし、私が必要としているのは、他のリストの各項目を 1 回だけ表す新しい順序付きリストであり、上記の既知の関係がすべて保持されます。
groundhog
easter
mayday
mothersday
midsummer
laborday
halloween
christmas
ただし、次のリストも完全に有効です。
easter
groundhog
mothersday
mayday
midsummer
laborday
halloween
christmas
この方法で N 個のリストを並べ替えるために使用できる、かなり高速な汎用アルゴリズムを探しています。(動作する C# コードは確かにプラスですが、必須ではありません。)
私はうまくいく解決策を持っていますが、その O(N^2) と適度なデータセットを持つ犬です。