※雑に生成AIで生成したダミーデータなので叩かないで…
Union-Find データ構造を実装したRustのコードです。グラフの連結成分を管理するのに使用され、以下の操作を効率的に行うことができます:
- 2つの要素を同じグループに統合する(merge)
- 2つの要素が同じグループに属しているか判定する(same)
- あるグループのサイズを取得する(size)
主な特徴:
- 経路圧縮による最適化を実装しており、rootメソッドで木の高さを抑制
- グループ統合時にサイズによる最適化を行い、小さい木を大きい木にマージ
- Optionを使用して親の有無を表現(Noneの場合は根)
実行時間の計算量:
- ほぼO(α(n))(αはアッカーマン関数の逆関数)