并查集
时间:2022-05-08
本文章向大家介绍并查集,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
void Make_set(int n)
{
for(int i=0;i<=n;i++)
{
father[i]=i;
rank[i]=0;
}
}
int find(int x)
{
int k, j, r;
r = x;
while(r != parent[r]) //查找跟节点
r = parent[r]; //找到跟节点,用r记录下
k = x;
while(k != r) //非递归路径压缩操作
{
j = parent[k]; //用j暂存parent[k]的父节点
parent[k] = r; //parent[x]指向跟节点
k = j; //k移到父节点
}
return r; //返回根节点的值
}
void Union(int x,int y)
{
if(x==y)return;
if(rank[x]>rank[y])
{
father[y]=x;
}
else
{ //rank[x]<rank[y],也是father[x]=y,所以省略
if(rank[x]==rank[y])
{
rank[y]++;
}
father[x]=y;
}
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 1.操作系统底层工作的基本原理
- ibatis 日常问题总结
- 2.1 并发编程之java内存模型JMM & synchronize & volatile详解
- 使用intellij idea 查看Java字节码
- 2.2 指令重排&happens-before 原则 & 内存屏障
- 设计模式之代理模式(由浅入深)
- jquery param 数据 数组参数序列化
- 3 CPU缓存一致性协议MESi
- 4. synchronized详解
- 4.2 synchronized补充
- 解决 Maven 使用Tomcat 部署报错 Tomcat return http status error: 405, Reason Phrase: Method Not Allowed:
- spring5源码 -- IOC容器设计理念和核心注解的作用
- 1. spring5源码 -- Spring整体脉络 IOC加载过程 Bean的生命周期
- Cookie详解
- 2.1 Spring5源码--源码编译