给出一组集合:
S_1:[1,2,3,4]
S_2:[3,4,5,6,7]
S_3:[8,9,10,11]
S_4:[1,8,12,13]
S_5:[6,7,14,15,16,17]
合并至少共享2个元素的所有集合的最有效方法是什么?我想这类似于连接组件问题.结果将是:
[1,2,3,4,5,6,7,14,15,16,17](S_1 UNION S_2 UNION S_5)
[8,9,10,11]
[1,8,12,13](S_4与S_1共享1,与S_3共享8,但未合并,因为它们只共享一个元素)
天真的实现是O(N ^ 2),其中N是集合的数量,这对我们来说是行不通的.这需要对数百万套有效.