SkillAgentSearch skills...

Unionfind

A union-find disjoint sets data structure implemented in Python with the "Weighted Quick Union with Path Compression" algorithm.

Install / Use

/learn @deehzee/Unionfind
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

UnionFind Implementation in Python

Union-find is a data structure that maintains disjoint set (called connected components or components in short) membership, and makes it easier to merge (union) two components, and to find if two elements are connected (i.e., belong to the same component).

This implements the "weighted-quick-union-with-path-compression" union-find algorithm. Only works if elements are immutable objects.

Worst case for union and find :math:(N + M \log^* N), with :math:N elements and :math:M union/find operations. The function :math:\log^* is the number of times needed to take :math:\log (base 2) of a number until reaching 1. In practice, the amortized cost of each operation is nearly linear [1]_.

Update: This has now been packaged into an instalable pip package by Hagai Helman Tov (@hagai-helman). See the fork at https://github.com/hagai-helman/unionfind).

Contents

  • Module unionfind with the class UnionFind

  • An example notebook UnionFindExamples.ipynb

  • License: MIT.

Requirements

  • numpy

.. [1] http://algs4.cs.princeton.edu/lectures/

View on GitHub
GitHub Stars67
CategoryDevelopment
Updated5mo ago
Forks21

Languages

Python

Security Score

97/100

Audited on Oct 20, 2025

No findings