算法复习
第一章 Union-find算法
Quick-find
//quick-find算法
//思路:union(6,5)操作是把6连接到5上,则意味着6及所有与6相连的节点都变成5(所有与id[6]相等的值全部变成id[5]的值)
//代码
public class QuickFindUF{
private int[] id;
public QuickFindUF(int N){
id=new int[N];
for(int i=0;i<N;i++)
id[i]=i;
}
public boolean isConnect(int pid,int qid){
return id[pid]==id[qid];
}
public void union(int pid,int qid){
int q=id[qid];
int p=id[pid];
for(int i=0;i<id.length;i++)
if(id[i]==p)
id[i]=q;
}
}
//第二种代码
public class QuickUnionUF{
private int[] id;
public QuickUnionUF(int N){
id=new int[N];
for(int i=0;i<N;i++)
id[i]=i;
}
public int root(int i)