Skip to content

Instantly share code, notes, and snippets.

@nailkhasipov
Created September 15, 2015 20:02
Show Gist options
  • Save nailkhasipov/597b52f657329b6b5e13 to your computer and use it in GitHub Desktop.
Save nailkhasipov/597b52f657329b6b5e13 to your computer and use it in GitHub Desktop.
var items = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
var parent = [];
var size = [];
for (i = 0; i < items.length; ++i){
parent[i] = i;
size[i] = 1;
}
var find = function (p) {
while (p != parent[p]) {
p = parent[p];
}
return p;
};
var union = function (p, q) {
var rootP = find(p);
var rootQ = find(q);
if (rootP == rootQ) return;
// make smaller root point to larger one
if (size[rootP] < size[rootQ]) {
parent[rootP] = rootQ;
size[rootQ] += size[rootP];
}
else {
parent[rootQ] = rootP;
size[rootP] += size[rootQ];
}
console.log(parent);
};
console.log(parent);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment