联合使用路径压缩算法找到不相交集加权快速联合

时间:2013-08-28 11:45:15

标签: java algorithm

关于联合查找不相交集的问题,加权快速联合路径压缩算法

Weighted Quick-Union with Path Compression algorithm

路径压缩会影响iz []数组(包含以i为根的树长度的数组)吗?

2 个答案:

答案 0 :(得分:2)

据我所知,代码中,数组iz []表示给定不相交集中的元素数量。压缩路径时,不会为每个集修改该编号。因此,路径压缩不会影响iz []数组。

答案 1 :(得分:2)

我会开始引用一些基本观点。首先,这是用于实现不相交集的最优算法,并且通过具有路径压缩启发式的秩称为Union。这个算法需要2个数组,第一个(id []那里)用作父节点的链接,第二个(iz [])给出集合中的节点数。

我们有2个操作 - 联盟和连接。

联盟由“等级”完成,通过使较小的树子成为较大的子树,导致进一步操作的摊销成本降低,因此长度趋于最小。

当调用connect方法时,在我们知道了树的根之后,我们使用路径压缩技术,它基本上将该特定节点指向该树的根,所以将来我们不必遍历整个树。再次分支。由于iz []只包含该集合的节点数,因此路径压缩不会产生任何影响。