「基本に立ち返る」旅行の一環として、この方法を検討していますが、恥ずかしいほど明白なものが欠落しているか、while
ここで演算子は必要ありません。
// Return component identifier for component containing p
public int find(int p) {
while (p != id[p])
p = id[p];
return p;
}
完全なソースはここにあります。
これと同じくらい単純なように見えます(そして関数全体はかなり無意味です):
public int find(int p) {
return id[p];
}