如何对列表中的元素进行排序A以便它们遵循另一个(超集)列表的排序B?假定没有重复。根据另一个列表定义的顺序对列表排序
E.g. 甲可能包含[8 2 5 1]和乙可能含有[5 6 9 8 7 4 1 2 3],所以我想进行排序甲成为[5 8 1 2]
我很感兴趣的方式有效地做到这一点,并具有良好的运行时复杂性。
如何对列表中的元素进行排序A以便它们遵循另一个(超集)列表的排序B?假定没有重复。根据另一个列表定义的顺序对列表排序
E.g. 甲可能包含[8 2 5 1]和乙可能含有[5 6 9 8 7 4 1 2 3],所以我想进行排序甲成为[5 8 1 2]
我很感兴趣的方式有效地做到这一点,并具有良好的运行时复杂性。
如果乙是一个的超集,我只希望转储一个到一个哈希表,扫描乙并创建一个新的列表,其中我插入的每一个元素从乙即包含在哈希表中。使用O(a)额外的内存和O(b)运行时。
这里有一些想法:(。在给出的时间复杂度,Ñ是大小甲和米是乙的大小的时间复杂性不简化)
这基本上是大卫的第二个选项。 – pauldoo 2010-08-12 13:47:24