github.com/oliverdaff/disjoint (go): Package disjoint contains a UnionFind (Disjoint-set) data structure. It is proven that the  running amortized time for `m` calls to to `FindPartition` and `Merge` on a set of `n` elements will require `O(m * Ak(n))` array accesss. Ak(n) is an approximation of the inverse Ackermann function, growing so slowly that it can be considered a constant.
Keywords: datastructures|sets