【发布时间】:2016-02-02 20:19:24
【问题描述】:
什么基本数据结构最适合用于两个不相交集的联合操作?
有没有可以在 O(1) 时间内运行的算法?
我正在考虑各种哈希表,但我有点卡住了。 这是关于算法和数据结构的学习指南。
完整的问题: 集合运算 UNION 以两个不相交的集合 S1 和 S2 作为输入,并返回一个 集合 S = S1 ∪ S2 由 S1 和 S2 的所有元素组成(集合 S1 和 S2 是 通常被此操作破坏)。解释如何支持 UNION 操作 在 O(1) 时间内使用合适的数据结构。讨论你会使用什么数据结构 使用并描述 UNION 操作的算法。
【问题讨论】:
-
“最佳”在哪方面?还需要哪些其他操作?仅支持联合可以在 O(1) 中轻松完成。
-
您需要说明这些集合应该支持的其他操作。例如,对于应该实现 java.util.Set 的集合,没有固定时间联合。如果有人想要恒定时间联合,他们通常会引导您使用联合查找算法(google it),但这与实现普通的 Set 接口非常不同。
标签: java algorithm data-structures union