1. 程式人生 > >【演算法】並查集

【演算法】並查集

class UnionFind {
    Integer[] arr;
    public UnionFind(int size) {
        this.arr = new Integer[size];
        for (int i = 1; i < arr.length; i++)
            arr[i] = new Integer(i);
    }
    public int findRoot(int i) {
        while (i != arr[i]) i = arr[i];
        return i;
    }
public void union(int a, int b) { a = findRoot(a); b = findRoot(b); arr[a] = b; } }