disjoint-set(不相交集合 / 并查集):一种在计算机科学中常用的数据结构,用来维护若干个互不重叠(不相交)的集合,并高效支持两类操作:判断两个元素是否属于同一集合,以及将两个集合合并。(也常称 Union-Find。)
/dɪsˈdʒɔɪnt sɛt/
We use a disjoint-set to track which nodes are connected.
我们用并查集来跟踪哪些节点是连通的。
By applying path compression and union by rank, the disjoint-set supports near-constant-time connectivity queries in large graphs.
通过路径压缩和按秩合并,并查集在大型图中几乎能以常数时间回答连通性查询。
disjoint 来自拉丁语系词根,含义是“分开、互不相交”;set 源自数学语境中的“集合”。合起来 disjoint-set 字面意思就是“互不相交的集合”,用于描述一组彼此没有交集的集合族。在算法教材中,这个结构因其核心操作 union(合并) 与 find(查找/判定归属),也常被称为 union-find。