在 Java Kruskal 算法的实现中,我们究竟应该在哪里执行路径压缩?

In Java implementation of Kruskal's algorithm where exactly should we perform Path Compression?

在 Java 中使用不相交集实现 Kruskal 算法时,我们应该将路径压缩称为单独的函数还是应该作为 find() 函数的组成部分?

只要您在不相交集的森林上调用 find 操作,就应该应用路径压缩和其他优化(如按等级合并)。

一种理解方式:从 Kruskal 算法的角度来看,您只需要能够调用 findunion 并让它们正常工作。您无需担心 如何 使 findunion 正常工作的细节,只要它们确实如此。不相交集森林负责确保一切都快速运行,因此对 find 的调用是压缩发生的地方。