Union Find

并查集: 一种用来解决集合查询/合并的数据结构 支持O(1) find / O(1) union操作

A very good source for Union Find:

Princeton CS Algorithms 4th Edition: https://algs4.cs.princeton.edu/15uf/

Union Find: 一种用于支持集合快速合并查找操作的数据结构

  • O(1)合并两个集合- Union

  • O(1)查询元素所属集合- Find

基本数据结构是:使用哈希表或者数组来存储每个节点父亲节点

并查集可以干什么? What Union Find Can Do?

  1. 判断在不在同一个集合中

    • find 操作

  2. 关于集合合并

    • union 操作

并查集应用场景总结:

1.合并两个集合

2.查询某个元素所在集合

3.判断两个元素是否在同一个集合

4.获得某个集合的元素个数

5.统计当前集合个数

并查集的操作 Union Find - Operation

查询 Find (递归? 非递归?)

模板代码

合并 Union

老大哥之间合并 跟小弟没关系

并查集完整模板 Union Find Template

HashMap Based

Array Based

Weighted quick-union with path compression

https://algs4.cs.princeton.edu/15uf/WeightedQuickUnionPathCompressionUF.java.html

Another Weighted + Path Compression - Simpler Version

Last updated

Was this helpful?