的集列表这里的问题JIST:鉴于套,如列表:分区通过共享元素
[ (1,2,3), (5,2,6), (7,8,9), (6,12,13), (21,8,34), (19,20) ]
返回的套组,使得集列表已共享元素在同一组中。
[ [ (1,2,3), (5,2,6), (6,12,13) ], [ (7,8,9), (21,8,34) ], [ (19,20) ] ]
注意stickeyness - 设定(6,12,13)不具有共享单元(1,2,3),但他们得到投入,因为同组(5,2 ,6)。
更复杂的是,我要指出,我真的没有这些整齐套,而是一个数据库表与几百万行,看起来像:
element | set_id
----------------
1 | 1
2 | 1
3 | 1
5 | 2
2 | 2
6 | 2
等。所以我很想用SQL来实现它,但是我会很高兴解决方案的一个大方向。
编辑:将表列名更改为(element,set_id)而不是(key,group_id),以使术语更一致。请注意,Kev的答案使用旧的列名称。
能否详细说明一下? – itsadok 2008-10-07 15:37:02
如果没有lft,rgt策略,这很难做到(除非你想循环树遍历循环) – 2008-10-07 18:21:02