src/main/java/de/dfki/lt/loot/jada/Partition.java
public int union(int a, int b) {
    a = findRepresentative(a);
    b = findRepresentative(b);
    if (a == b)
      return b;
    if (size[a] > size[b]) {
      // exchange a and b --> merge b into a
      int h = b;
      b = a;
      a = h;
    }
    // merge a into b
    tree[a] = b;
    size[b] += size[a];
    // concatenate ListB + ListA
    int tailB = membersLast[b];
    members[tailB] = a;
    membersLast[b] = membersLast[a];
    return b;
  }
/** Merge the equivalence classes of a and b and return the new
   *  representative.
   */
Merge the equivalence classes of a and b and return the new
representative.
Merge the equivalence classes of a and b and return the new representative .
public int union(int a, int b) {
    a = findRepresentative(a);
    b = findRepresentative(b);
    if (a == b)
      return b;
    if (size[a] > size[b]) {
      int h = b;
      b = a;
      a = h;
    }
    tree[a] = b;
    size[b] += size[a];
    int tailB = membersLast[b];
    members[tailB] = a;
    membersLast[b] = membersLast[a];
    return b;
  }
public int union ( int a , int b ) { a = findRepresentative ( a ) ; b = findRepresentative ( b ) ; if ( a == b ) return b ; if ( size [ a ] > size [ b ] ) { int h = b ; b = a ; a = h ; } tree [ a ] = b ; size [ b ] += size [ a ] ; int tailB = membersLast [ b ] ; members [ tailB ] = a ; membersLast [ b ] = membersLast [ a ] ; return b ; }
Merge the equivalence classes of a and b and return the new
  representative.
Merge the equivalence classes of a and b and return the new representative .
// exchange a and b --> merge b into a // merge a into b // concatenate ListB + ListA