Skip to content

Commit dac581c

Browse files
union find
1 parent ace7cf2 commit dac581c

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

Union FInd/Java/QuickFindUF.java

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import java.util.*;
2+
public class QuickFindUF
3+
{
4+
private int id[];
5+
public QuickFindUF(int N)
6+
{
7+
id=new int[N];
8+
}
9+
public boolean connected(int p,int q)
10+
{
11+
return id[p]==id[q];
12+
}
13+
public void union(int p,int q)
14+
{
15+
int pid=id[p];
16+
int qid=id[q];
17+
for(int i=0;i<id.length;i++)
18+
{
19+
if(id[i]==pid)
20+
id[i]=qid;
21+
}
22+
}
23+
}

Union FInd/Java/QuickUnionUF.java

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
public class QuickUnionUF
2+
{
3+
private int[] id;
4+
5+
public QuickUnionUF(int n)
6+
{
7+
id = new int[N];
8+
for(int i=0;i<n;i++)
9+
{
10+
id[i]=i;
11+
}
12+
}
13+
14+
private int root(int i)
15+
{
16+
while(i != id[i])
17+
{
18+
i=id[i];
19+
}
20+
return i;
21+
}
22+
23+
public boolean connected(int p,int q)
24+
{
25+
return root(p)==root(q);
26+
}
27+
28+
public void union(int p,int q)
29+
{
30+
int i = root(p);
31+
int j = root(q);
32+
id[i] = j;
33+
}
34+
}

0 commit comments

Comments
 (0)