Algorithm 用于查询一组集合的数据结构?

Algorithm 用于查询一组集合的数据结构?,algorithm,data-structures,set,Algorithm,Data Structures,Set,假设我有一组n个元素,分成若干组。每个元素都在一个集合中 我希望能够尽快执行以下查询: 元素e在什么集合s中? 集合s中有哪些元素{e1,e2,…,ei}? 我应该使用什么数据结构?我能想到的最好的方法是一张指向一组集合的地图,但我想知道是否有更好的方法 如果有帮助,你可以假设我的集合是整数{0,1,…,n-1}如果你的集合是没有间隙的整数{0,1,…,n-1},那么使用集合数组会更有效;然而,如果整数是稀疏的,那么集合映射将需要更少的空间。无论哪种方式,操作1都将在固定时间内运行,最坏情况是数

假设我有一组n个元素,分成若干组。每个元素都在一个集合中

我希望能够尽快执行以下查询:

元素e在什么集合s中? 集合s中有哪些元素{e1,e2,…,ei}? 我应该使用什么数据结构?我能想到的最好的方法是一张指向一组集合的地图,但我想知道是否有更好的方法


如果有帮助,你可以假设我的集合是整数{0,1,…,n-1}

如果你的集合是没有间隙的整数{0,1,…,n-1},那么使用集合数组会更有效;然而,如果整数是稀疏的,那么集合映射将需要更少的空间。无论哪种方式,操作1都将在固定时间内运行,最坏情况是数组,平均情况是哈希映射。

您需要修改这些集合吗?设置后,我需要能够做的主要事情是设置Union,您是否考虑了一些额外的工作来提供第二类查询?