public class mxUnionFind
extends java.lang.Object
alpha(m,n) = min{i >= 1 | A(i, floor(m/n)) > log n} for m >= n >= 1
Which yields almost constant time for each individual operation.Modifier and Type | Class and Description |
---|---|
class |
mxUnionFind.Node
A class that defines the identity of a set.
|
Modifier and Type | Field and Description |
---|---|
protected java.util.Map<java.lang.Object,mxUnionFind.Node> |
nodes
Maps from elements to nodes
|
Constructor and Description |
---|
mxUnionFind(java.lang.Object[] elements)
Constructs a union find structure and initializes it with the specified
elements.
|
Modifier and Type | Method and Description |
---|---|
boolean |
differ(java.lang.Object a,
java.lang.Object b)
Returns true if element a and element b are not in the same set.
|
mxUnionFind.Node |
find(mxUnionFind.Node node)
Returns the set that contains
node . |
mxUnionFind.Node |
getNode(java.lang.Object element)
Returns the node that represents element.
|
void |
union(mxUnionFind.Node a,
mxUnionFind.Node b)
Unifies the sets
a and b in constant time
using a union by rank on the tree size. |
protected java.util.Map<java.lang.Object,mxUnionFind.Node> nodes
public mxUnionFind(java.lang.Object[] elements)
elements
- public mxUnionFind.Node getNode(java.lang.Object element)
public mxUnionFind.Node find(mxUnionFind.Node node)
node
. This implementation
provides path compression by halving.public void union(mxUnionFind.Node a, mxUnionFind.Node b)
a
and b
in constant time
using a union by rank on the tree size.public boolean differ(java.lang.Object a, java.lang.Object b)
a
- The first element to compare.b
- The second element to compare.getNode(Object)
Copyright (c) 2010 Gaudenz Alder, David Benson. All rights reserved.