Skip to main content

Union-Find data structure implementation in Python

Project description

Implementation of the Union-Find data structure in Python.

Data is divided into different groups (“partitions”). Each group has a name, and a set of objects. Over this setup, we want to support two operations:

  • find(x): Return the name of the group where x belongs to.

  • union(g1, g2): Given two groups, merge them into one. The new meta-group contains all the elements from g1 and g2.

Example usage:

>>> space = UnionFindSpace(
    Partition("letters", "abcdef"),
    Partition("numbers", range(5)),
)

>>> space.find("a")
letters

>>> space.find(1)
numbers

>>> partition = space.union("letters", "numbers")
>>> partition.name
letters_numbers


# It's possible to indicate the name of the  group

>>> partition = space.union("letters", "numbers", "alpha")
>>> partition.name
alpha

Development

In order to start working or testing with this repository, you’ll need to create and activate a new virtual environment. Respectively, the commands are the following ones

$ python3 -m venv env
$ source env/bin/activate

After that you can setup the environment with:

$ make install-dev
$ make test

Make sure that:

  1. The test pass successfully

  2. The code is properly formatted (this can be checked with make lint and corrected with make format).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyuf-0.1.2.tar.gz (2.8 kB view details)

Uploaded Source

Built Distribution

pyuf-0.1.2-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file pyuf-0.1.2.tar.gz.

File metadata

  • Download URL: pyuf-0.1.2.tar.gz
  • Upload date:
  • Size: 2.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.8.0

File hashes

Hashes for pyuf-0.1.2.tar.gz
Algorithm Hash digest
SHA256 401449dab444fcd001283166f299170a7e11c282b2524ba859faf682a0d1525a
MD5 4e712236e1a8f32861016fd878af209c
BLAKE2b-256 706be6a4004a78e8e41f0f77150ed8dfcb977d5141e59d305232b717235d0a72

See more details on using hashes here.

File details

Details for the file pyuf-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pyuf-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 3.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.8.0

File hashes

Hashes for pyuf-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5363345124d823117f18375a987600bf1af91782c219365f339ed703097e2d7d
MD5 fd39a3777f6559fc488b9e6845dca1f5
BLAKE2b-256 a922191801ce4e7fd23160d39661f16798adc40f4b40017a4958e46bc238112b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page