リストAの要素を別の (スーパーセット) リストBの順序に従うように並べ替えるにはどうすればよいですか? 重複はないと仮定します。
たとえば、Aには [8 2 5 1] が含まれ、Bには [5 6 9 8 7 4 1 2 3] が含まれる可能性があるため、Aを [5 8 1 2] になるように並べ替えます。
これを効率的に実行し、実行時の複雑さを軽減する方法に興味があります。
BがAのスーパーセットである場合、 Aをハッシュテーブルにダンプし、 Bをスキャンして、ハッシュテーブルに含まれるBのすべての要素を挿入する新しいリストを作成します。O(a)追加メモリとO(b)ランタイムを使用します。
ここにいくつかのアイデアがあります:
(与えられた時間計算量では、nはAのサイズで、mはBのサイズです。時間計算量は単純化されていません。)