并查集什么情况用

来源:11-1 什么是并查集

car

2020-04-04

请老师指点下。没有数据结构经验

写回答

1回答

liuyubobobo

2020-04-05

课程中举了这样一个例子,就是并查集使用的典型场景:已知很多点,和点与点之间的连接关系(进行 union 操作),查询两点之间是否连通?(执行 isConnected 操作。)】

//img.mukewang.com/szimg/5e892b9009a33a8a18841056.jpg


这是一个抽象模型,具体在一个问题中,点和边可能代表不同的意义。


比如每个点是一个人,每个边表示两个人认识;那么,通过并查集,我们就可以快速查找,任意两个人之间是否可能经过“朋友介绍”,认识彼此?


再比如每个点可能表示一个地方,每个边表示两个地方之间存在交通,通过并查集,我们也可以快速查找两个地方之间是否可达。


在 Leetcode 上,专门有一个问题分类,是并查集,如果对此感兴趣,可以看看这个分类下的问题:https://leetcode.com/tag/union-find/


另外,求解最小生成树的 Kruskal 算法,要想做到最优,也必须使用并查集,这在我的图论课程中有详细介绍,有兴趣可以参考:https://coding.imooc.com/class/370.html


继续加油!:)

0
1
car
老师说的很好,收益匪浅
2020-04-05
共1条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程