【算法面试通关40讲】52 - 理论讲解:并查集

并查集(union & find)

并查集是一种树形结构,用于处理一些不交集的(Disjoint Sets)的合并及查询问题。
Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一个子集。
Union:将两个子集合并成同一个子集。

可以用于查看元素是否在一个集合里,合并两个不同的集合等等

在生活中的例子

  • 小弟 -> 老大(类似古惑仔,小弟属于洪兴的还是东星的)
  • 帮派识别
  • 两种优化方式

使用数组进行实现,?是Java代码


初始化,大家的老大都是自己

一段时间后形成这种局面,找老大就是不断的往上面寻找,一直到指向自己

集合的合并


优化一:
合并的时候约定俗称的规矩是将rank(类似树的深度)较低的子集merge到rank较高的子集中


优化二:
路径压缩,只需进行一次向上查询就好,用了优化二就不用优化一了

全部评论

相关推荐

LZStarV:冲就好了,就算真的是字节也冲,面评脏了大不了等三四个月就淡了,而且等到那个时候实力进步了选择还多,何必拘泥于字节
点赞 评论 收藏
分享
肖先生~:那年秋招闯进一位少年,人们都清楚:成功对他来说只是时间问题
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务