如何對列表中的元素進行排序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