数据结构-并查集

数据结构-并查集

并查集(Disjoint-Set)是一种可以动态维护若干个不重叠的集合,并支持合并与查询的数据结构。

get操作查询一个元素属于哪一个集合。

merge操作把两个集合合并成一个大集合。

C++ 复制代码
//并查集的存储
int fa[N];
//并查集的初始化,时间复杂度O(n)
//设有n个元素,起初所有元素各自构成一个独立的集合,即有n棵1个点的树。
for(int i=1;i<=n;i++) fa[i]=i;
//并查集的get操作
//若x是树根,则x是集合代表,否则递归访问fa[x]直至根节点。
int get(int x)
{
    if(fa[x]==x) return x;
    return fa[x]=get(fa[x]);
}
//并查集的merge操作
//合并元素x和元素y所在的集合,等价于让x的树根作为y的树根的子节点。
void merge(int x,int y)
{
    fa[get(x)]=get(y);
}

P3367 【模板】并查集 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

相关推荐
王璐WL5 分钟前
【数据结构】单链表的经典算法题
数据结构·算法
m0_495562787 分钟前
Swift-Enum
java·算法·swift
青山的青衫10 分钟前
【前后缀】Leetcode hot 100
java·算法·leetcode
Zzzzmo_23 分钟前
Java数据结构:二叉树
java·数据结构·算法
CoovallyAIHub29 分钟前
结构化数据迎来“ChatGPT时刻”!LimitX:一个模型统一所有表格任务
深度学习·算法·计算机视觉
普普通通的南瓜1 小时前
网站提示 “不安全”?免费 SSL 证书一键解决
网络·数据库·网络协议·算法·安全·iphone·ssl
聆风吟º1 小时前
【数据结构入门手札】数据结构基础:从数据到抽象数据类型
数据结构·数据类型·逻辑结构·数据对象·物理结构·数据项·数据元素
啊吧怪不啊吧1 小时前
二分查找算法介绍及使用
数据结构·算法·leetcode
知识搬运工人1 小时前
对比 DeepSeek(MLA)、Qwen 和 Llama 系列大模型在 Attention 架构/算法层面的核心设计及理解它们的本质区别。
算法
蒋星熠2 小时前
全栈开发实战指南:从架构设计到部署运维
运维·c++·python·系统架构·node.js·devops·c5全栈