Implementation of a disjoint set data structure
Efficient disjoint-set data structure implementation
Implementation of Disjoint sets data structure.
A union-find data structure for maintaining disjoint sets.
TypedArray-based disjoint set implementation with quick union & path compression
Checks if two geometries have no overlapping areas.
Split a set of valued intervals into disjoint intervals.
Disjoint-set data structure
turf boolean-disjoint module
Disjoint continuous ranges
A Disjoint Set implementation in Reason
The RAW union find (disjoint set) library
a disjoint-set data structure js implementation
disjoint-set
Operations with intervals of real numbers, including intersections, joins, disjoint sets etc
disjoint set data structure for browsers and node.js
Checks if arrays have no value in common.
Checks if arrays have no value in common.
Disjoint-set forests for ES6
Six cube face geometries forming a disjoint skybox.
Draws a disjoint skybox into a 3D scene.
Checks if arrays have no value in common.
Implementation of Disjoint-set data structure algorithm (also called a union–find data structure or merge–find set).
Checks if arrays have no value in common.
Fast and safe implementation of the disjoint-set data structure.
Support for mutually disjoint impls
A tool to batch commits by issue into GitHub PRs
A provably safe abstraction for concurrent disjoint mutable access to contiguous storage
A disjoint set / union-find data structure suitable for incremental tracking of connected component identified by their hash.
Disjoint set implementation with optimized memory usage and ability to detach elements.
Ranges with gaps
A disjoint set data structure implemented using a disjoint set forest.
Disjoint-set data structures
Three union-find implementations
Gabow-Tarjan linear-time algorithm for incremental tree set union (JCSS 1985)
Disjoint mutable borrows of slices
Disjoint-set data structure library.
A Ruby implementation of the disjoint set forest, or union find, data structure. This implementation uses path compression and union by rank to ensure optimal complexity.
My mesh of an all-in-one library for disjoint code.
Union Find is an algorithm that uses a disjoint-set data structure. It allows us to efficiently connect any items of a given list and to efficiently check whether two items of this list are connected (any degree of separation) or not.
In computer science, a disjoint-set data structure, also called a union–find data structure or merge–find set, is a data structure that keeps track of a set of elements partitioned into a number of disjoint (non-overlapping) subsets. It provides near-constant-time operations (bounded by the inverse Ackermann function) to add new sets, to merge existing sets, and to determine whether elements are in the same set. In addition to many other uses (see the Applications section), disjoint-sets play a key role in Kruskal's algorithm for finding the minimum spanning tree of a graph. A disjoint-set forest consists of a number of elements each of which stores an id, a parent pointer, and, in efficient algorithms, a value called the "rank". The parent pointers of elements are arranged to form one or more trees, each representing a set. If an element's parent pointer points to no other element, then the element is the root of a tree and is the representative member of its set. A set may consist of only a single element. However, if the element has a parent, the element is part of whatever set is identified by following the chain of parents upwards until a representative element (one without a parent) is reached at the root of the tree. Forests can be represented compactly in memory as arrays in which parents are indicated by their array index. Disjoint-set data structures model the partitioning of a set, for example to keep track of the connected components of an undirected graph. This model can then be used to determine whether two vertices belong to the same component, or whether adding an edge between them would result in a cycle. The Union–Find algorithm is used in high-performance implementations of unification. This data structure is used by the Boost Graph Library to implement its Incremental Connected Components functionality. It is also a key component in implementing Kruskal's algorithm to find the minimum spanning tree of a graph. Note that the implementation as disjoint-set forests doesn't allow the deletion of edges, even without path compression or the rank heuristic. Sharir and Agarwal report connections between the worst-case behavior of disjoint-sets and the length of Davenport–Schinzel sequences, a combinatorial structure from computational geometry.
This small gem contains several data structures that I have implemented in Ruby to learn how they work. Sometimes it is not enough to read the description of a data structure and accompanying pseudo-code. Actually implementing it is often helpful in understanding what is going on. It is also usually fun. The gem contains basic implementions of Disjoint Union, Heap, Priority Search Tree, and Segment Tree. See the homepage for more details.
Rangeable is a language-neutral, generic, integer-coordinate closed-interval set container. It pairs hashable elements with their merged disjoint integer ranges and answers three queries: by-element ranges, by-position active set, and by-range transition events. The Ruby reference implementation follows the Rangeable RFC normatively, including idempotent containment fast-path, lazy boundary-event indexing, and first-insert deterministic ordering.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.