日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Algs4-1.5.4给出id[]和sz[]的内容与次数

發(fā)布時(shí)間:2025/7/25 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Algs4-1.5.4给出id[]和sz[]的内容与次数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.5.4在正文的加權(quán)quick-union算法示例中,對于輸入的每一對整數(shù)(包括對照輸入和最壞情況下的輸入),給出id[]和sz[]數(shù)組的內(nèi)容以及訪問數(shù)組的次數(shù)。
答:
1)示例:



2)對照輸入:





3)最壞輸入





4)code:
public class WeightedQuickUnionUF
{
??? private int[] id;
??? private int[] sz;
??? private int count;
??? public WeightedQuickUnionUF(int N)
??? {
??????? count=N;
??????? id=new int[N];
??????? for (int i=0;i<N;i++)
???????? {
??????????? id[i]=i;
??????????? StdOut.printf("%3d",i);
???????? }
???????? StdOut.println();
??????? //
??????? sz=new int[N];
??????? for (int i=0;i<N;i++)
??????????? sz[i]=1;
??????? //
??? }
???
???? public int count()
???? {return count;}
????
????? boolean connected(int p,int q)
????? {return find(p)==find(q);}
????
????? public int find(int p)
????? {
????????? while(p!=id[p]) p=id[p];
????????? return p;
????? }
??????
????
????? public void union(int p,int q)
????? {
????????? int i=find(p);
????????? int j=find(q);
????????? StdOut.printf(" i=%d j=%d\n",i,j);
????????? if(i==j) return;
????????? if(sz[i]<sz[j])
????????? {
????????????? id[i]=j;
????????????? sz[j]=sz[j]+sz[i];
?????????? }
????????? else
????????? {
????????????? id[j]=i;
????????????? sz[i]=sz[i]+sz[j];
????????? }
????????? count--;
????????? //
????????? for (int k=0;k<id.length;k++)
????????????? StdOut.printf("%3d",id[k]);
????????? StdOut.printf("\n");
????????? for (int k=0;k<id.length;k++)
????????????? StdOut.printf("%3d",sz[k]);
????????? StdOut.printf("\n\n");
????? }
??????
?????? public static void main(String[] qrgs)
?????? {
?????????? int N=StdIn.readInt();
?????????? WeightedQuickUnionUF uf=new WeightedQuickUnionUF(N);
?????????? while (!StdIn.isEmpty())
?????????? {
?????????????? int p=StdIn.readInt();
?????????????? int q=StdIn.readInt();
?????????????? if(uf.connected(p,q)) continue;
??????????????? StdOut.printf("p=%d q=%d",p,q);
?????????????? uf.union(p,q);
??????????? }//end while
??????? }//end main
}//end class

轉(zhuǎn)載于:https://www.cnblogs.com/longjin2018/p/9854688.html

總結(jié)

以上是生活随笔為你收集整理的Algs4-1.5.4给出id[]和sz[]的内容与次数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。