Disjoint-set with Ruby
自分の友達 安倍
さん、その 安倍
さんの友達 オバマ
さんと、 安倍
さんを介して自分とつながっているとするならば、
つながりを一旦調べると、以後、 安倍
さんを介してつながりの確認をする必要がない。
そんなことが出来てしまうのが Disjoint-set だ。
Disjiont-set を使って Connected component が解けたり、Minimum spanning tree の Kruskal’s algorithm なんかで使われる。