1. 程式人生 > >Algs4-1.5-quick-find

Algs4-1.5-quick-find

gxt color photo ole size tor ebp n) -i

技術分享圖片
public class UF
{
private int[] id;
private int count;
public UF(int N)
{
count=N;
id=new int[N];
for (int i=0;i<N;i++)
id[i]=i;
}

public int count()
{return count;}

boolean connected(int p,int q)
{return find(p)==find(q);}

public int find(int p)
{return id[p];}

public void union(int p,int q)
{
int pID=find(p);
int qID=find(q);
if (pID==qID) return;
for (int i=0;i<id.length;i++)
if(id[i]==pID) id[i]=qID;
count--;
}

public static void main(String[] qrgs)
{
int N=StdIn.readInt();
UF uf=new UF(N);
while (!StdIn.isEmpty())
{
int p=StdIn.readInt();
int q=StdIn.readInt();
if(uf.connected(p,q)) continue;
uf.union(p,q);
StdOut.println(p+ " " +q);
}//end while
}//end main
}//end class



Algs4-1.5-quick-find