假设我有一组n
个元素,分为多个集合。每个元素都在一组中。
我希望能够尽快完成以下查询:
s
中的元素e
是什么?{e1,e2,...,ei}
集合中s
的哪些元素?我应该使用哪种数据结构?我能想到的最好的是一张指向一堆的地图,但我想知道是否有更好的方法?
如果有帮助,您可以假设我的集合是整数{0,1,...,n-1}
答案 0 :(得分:0)
如果你的集合是没有间隙的整数{0,1,...,n-1}那么使用集合数组会更有效率;但是如果整数是稀疏的,那么集合图将需要更少的空间。无论哪种方式,operation(1)都会在恒定时间内运行(对于数组来说最糟糕的情况,哈希映射的平均情况)。