不相交集算法的路径压缩技术的复杂度是多少?
What is the complexity of path compression technique for disjoint set algorithm?
我正在研究disjoint algorithm with the union by rank and path compression。
我很清楚如果使用 Union by rank
那么 find() operation
复杂度是 O(log(n))
.
但我想知道如果我使用按等级联合或不按等级联合,不相交集算法的 complexity of the path compression technique
是什么?
如果你 link 任意组合在一起而不是使用 union-by-rank 或 union-by-size,那么单独的路径压缩将达到 O(m log n) 任何序列的 n 联合和 m 查找的时间(m > n)。这使得查找操作的 摊销 成本 O(log n)
证明很困难,所以这里有一个很好的确认参考:https://www.cs.princeton.edu/courses/archive/spring13/cos423/lectures/UnionFind.pdf
我正在研究disjoint algorithm with the union by rank and path compression。
我很清楚如果使用 Union by rank
那么 find() operation
复杂度是 O(log(n))
.
但我想知道如果我使用按等级联合或不按等级联合,不相交集算法的 complexity of the path compression technique
是什么?
如果你 link 任意组合在一起而不是使用 union-by-rank 或 union-by-size,那么单独的路径压缩将达到 O(m log n) 任何序列的 n 联合和 m 查找的时间(m > n)。这使得查找操作的 摊销 成本 O(log n)
证明很困难,所以这里有一个很好的确认参考:https://www.cs.princeton.edu/courses/archive/spring13/cos423/lectures/UnionFind.pdf