05-5.5.3 并查集的进一步优化

👋 Hi, I’m @Beast Cheng
👀 I’m interested in photography, hiking, landscape…
🌱 I’m currently learning python, javascript, kotlin…
📫 How to reach me --> 458290771@qq.com


喜欢《数据结构》部分笔记的小伙伴可以订阅专栏,今后还会不断更新。🧑‍💻
感兴趣的小伙伴可以点一下订阅、收藏、关注!🚀
谢谢大家!🙏

拓展:Find 操作的优化(压缩路径)

压缩路径——Find 操作,先找到根结点,再将查找路径上所有的结点都挂到根结点下

int Find(int S[], int x){
	int root = x;
	while(S[root] >= 0) root = S[root];  // 循环找到根
	while(x != root){  // 父结点
		int t = S[x];  // t 指向 x 的父结点
		S[x] = root;  // x 直接挂到根结点下
		x = t;
	}
	return root;  // 返回根结点编号
}

每次 Find 操作,先找根,再 “压缩路径” ,可使树的高度不超过 O ( α ( n ) ) O(\alpha(n)) O(α(n)) α ( n ) \alpha(n) α(n) 是一个增长很缓慢的函数,对于常见的 n 值,通常 α ( n ) ≤ 4 \alpha(n)\leq4 α(n)4 ,因此优化后并查集的 Find、Union 操作时间开销都很低

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Beast Cheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值