Union-Find
あれとこれは同じグループ?
グループを管理するデータ構造
Union:2つの要素を1つのグループとしてまとめる
Find:2つの要素が同じグループか調べる
例:{{125}, {3} ,{467}}のとき、2と5は同じグループかどうか判定できる
グループをTreeで表現し、2つの要素のrootが同じなら同じグループと判定
計算量
多数の試行の平均としての1度あたり計算量が$ O(\alpha(n))
$ \alpha(n)はアッカーマン関数の逆関数。$ O(\log(n))より早い
リソース
https://www.cs.princeton.edu/~rs/AlgsDS07/01UnionFind.pdf
蟻本 p.81〜
#algorithm