查询一组集的数据结构?

时间:2014-11-05 15:42:13

标签: algorithm data-structures set

假设我有一组n个元素,分为多个集合。每个元素都在一组中。

我希望能够尽快完成以下查询:

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

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

1 个答案:

答案 0 :(得分:0)

如果你的集合是没有间隙的整数{0,1,...,n-1}那么使用集合数组会更有效率;但是如果整数是稀疏的,那么集合图将需要更少的空间。无论哪种方式,operation(1)都会在恒定时间内运行(对于数组来说最糟糕的情况,哈希映射的平均情况)。