并查集 (DisjointSet)

一个使用 Swift 实现的 并查集数据结构

并查集概述

并查集类似于常规集合,但具有额外的超能力:它可以将成员划分为不相交的子集,而不会增加标准操作的时间复杂度上限。

算法时间复杂度

操作 时间复杂度
isEmpty O(1)
count O(1)
insert(_:unioningWith:) O(1)
contains(_:) O(1)
count(ofSubsetsContaining:) O(1)
allSubsets() O(n)
subset(containing:) O(n)

要确认实际结果与理论相符,请使用 DisjointSet.attabench

API 使用

请参阅 Tests/DisjointSetTests/LeetCodeTests.swift

兼容性

使用 Swift 4 测试。 MIT 许可证。