File tree Expand file tree Collapse file tree 20 files changed +60
-60
lines changed
06-Union-Find/Course Code (Java)
02-Quick-Find/src/bobo/algo
03-Quick-Union/src/bobo/algo
04-Optimize-by-Size/src/bobo/algo
05-Optimize-by-Rank/src/bobo/algo
06-Path-Compression/src/bobo/algo
Chapter-06-Completed-Code/src/bobo/algo Expand file tree Collapse file tree 20 files changed +60
-60
lines changed Original file line number Diff line number Diff line change @@ -16,20 +16,20 @@ public UnionFind1(int n) {
16
16
17
17
// 查找过程, 查找元素p所对应的集合编号
18
18
// O(1)复杂度
19
- int find (int p ) {
19
+ private int find (int p ) {
20
20
assert p >= 0 && p < count ;
21
21
return id [p ];
22
22
}
23
23
24
24
// 查看元素p和元素q是否所属一个集合
25
25
// O(1)复杂度
26
- boolean isConnected (int p , int q ) {
26
+ public boolean isConnected (int p , int q ) {
27
27
return find (p ) == find (q );
28
28
}
29
29
30
30
// 合并元素p和元素q所属的集合
31
31
// O(n) 复杂度
32
- void unionElements (int p , int q ) {
32
+ public void unionElements (int p , int q ) {
33
33
34
34
int pID = find (p );
35
35
int qID = find (q );
Original file line number Diff line number Diff line change @@ -15,20 +15,20 @@ public UnionFind1(int n) {
15
15
}
16
16
17
17
// 查找过程, 查找元素p所对应的集合编号
18
- int find (int p ) {
18
+ private int find (int p ) {
19
19
assert p >= 0 && p < count ;
20
20
return id [p ];
21
21
}
22
22
23
23
// 查看元素p和元素q是否所属一个集合
24
24
// O(1)复杂度
25
- boolean isConnected (int p , int q ) {
25
+ public boolean isConnected (int p , int q ) {
26
26
return find (p ) == find (q );
27
27
}
28
28
29
29
// 合并元素p和元素q所属的集合
30
30
// O(n) 复杂度
31
- void unionElements (int p , int q ) {
31
+ public void unionElements (int p , int q ) {
32
32
33
33
int pID = find (p );
34
34
int qID = find (q );
Original file line number Diff line number Diff line change @@ -19,7 +19,7 @@ public UnionFind2(int count){
19
19
20
20
// 查找过程, 查找元素p所对应的集合编号
21
21
// O(h)复杂度, h为树的高度
22
- int find (int p ){
22
+ private int find (int p ){
23
23
assert ( p >= 0 && p < count );
24
24
// 不断去查询自己的父亲节点, 直到到达根节点
25
25
// 根节点的特点: parent[p] == p
@@ -30,13 +30,13 @@ int find(int p){
30
30
31
31
// 查看元素p和元素q是否所属一个集合
32
32
// O(h)复杂度, h为树的高度
33
- boolean isConnected ( int p , int q ){
33
+ public boolean isConnected ( int p , int q ){
34
34
return find (p ) == find (q );
35
35
}
36
36
37
37
// 合并元素p和元素q所属的集合
38
38
// O(h)复杂度, h为树的高度
39
- void unionElements (int p , int q ){
39
+ public void unionElements (int p , int q ){
40
40
41
41
int pRoot = find (p );
42
42
int qRoot = find (q );
Original file line number Diff line number Diff line change @@ -15,20 +15,20 @@ public UnionFind1(int n) {
15
15
}
16
16
17
17
// 查找过程, 查找元素p所对应的集合编号
18
- int find (int p ) {
18
+ private int find (int p ) {
19
19
assert p >= 0 && p < count ;
20
20
return id [p ];
21
21
}
22
22
23
23
// 查看元素p和元素q是否所属一个集合
24
24
// O(1)复杂度
25
- boolean isConnected (int p , int q ) {
25
+ public boolean isConnected (int p , int q ) {
26
26
return find (p ) == find (q );
27
27
}
28
28
29
29
// 合并元素p和元素q所属的集合
30
30
// O(n) 复杂度
31
- void unionElements (int p , int q ) {
31
+ public void unionElements (int p , int q ) {
32
32
33
33
int pID = find (p );
34
34
int qID = find (q );
Original file line number Diff line number Diff line change @@ -19,7 +19,7 @@ public UnionFind2(int count){
19
19
20
20
// 查找过程, 查找元素p所对应的集合编号
21
21
// O(h)复杂度, h为树的高度
22
- int find (int p ){
22
+ private int find (int p ){
23
23
assert ( p >= 0 && p < count );
24
24
// 不断去查询自己的父亲节点, 直到到达根节点
25
25
// 根节点的特点: parent[p] == p
@@ -30,13 +30,13 @@ int find(int p){
30
30
31
31
// 查看元素p和元素q是否所属一个集合
32
32
// O(h)复杂度, h为树的高度
33
- boolean isConnected ( int p , int q ){
33
+ public boolean isConnected ( int p , int q ){
34
34
return find (p ) == find (q );
35
35
}
36
36
37
37
// 合并元素p和元素q所属的集合
38
38
// O(h)复杂度, h为树的高度
39
- void unionElements (int p , int q ){
39
+ public void unionElements (int p , int q ){
40
40
41
41
int pRoot = find (p );
42
42
int qRoot = find (q );
Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ public UnionFind3(int count){
21
21
22
22
// 查找过程, 查找元素p所对应的集合编号
23
23
// O(h)复杂度, h为树的高度
24
- int find (int p ){
24
+ private int find (int p ){
25
25
assert ( p >= 0 && p < count );
26
26
// 不断去查询自己的父亲节点, 直到到达根节点
27
27
// 根节点的特点: parent[p] == p
@@ -32,13 +32,13 @@ int find(int p){
32
32
33
33
// 查看元素p和元素q是否所属一个集合
34
34
// O(h)复杂度, h为树的高度
35
- boolean isConnected ( int p , int q ){
35
+ public boolean isConnected ( int p , int q ){
36
36
return find (p ) == find (q );
37
37
}
38
38
39
39
// 合并元素p和元素q所属的集合
40
40
// O(h)复杂度, h为树的高度
41
- void unionElements (int p , int q ){
41
+ public void unionElements (int p , int q ){
42
42
43
43
int pRoot = find (p );
44
44
int qRoot = find (q );
Original file line number Diff line number Diff line change @@ -15,20 +15,20 @@ public UnionFind1(int n) {
15
15
}
16
16
17
17
// 查找过程, 查找元素p所对应的集合编号
18
- int find (int p ) {
18
+ private int find (int p ) {
19
19
assert p >= 0 && p < count ;
20
20
return id [p ];
21
21
}
22
22
23
23
// 查看元素p和元素q是否所属一个集合
24
24
// O(1)复杂度
25
- boolean isConnected (int p , int q ) {
25
+ public boolean isConnected (int p , int q ) {
26
26
return find (p ) == find (q );
27
27
}
28
28
29
29
// 合并元素p和元素q所属的集合
30
30
// O(n) 复杂度
31
- void unionElements (int p , int q ) {
31
+ public void unionElements (int p , int q ) {
32
32
33
33
int pID = find (p );
34
34
int qID = find (q );
Original file line number Diff line number Diff line change @@ -19,7 +19,7 @@ public UnionFind2(int count){
19
19
20
20
// 查找过程, 查找元素p所对应的集合编号
21
21
// O(h)复杂度, h为树的高度
22
- int find (int p ){
22
+ private int find (int p ){
23
23
assert ( p >= 0 && p < count );
24
24
// 不断去查询自己的父亲节点, 直到到达根节点
25
25
// 根节点的特点: parent[p] == p
@@ -30,13 +30,13 @@ int find(int p){
30
30
31
31
// 查看元素p和元素q是否所属一个集合
32
32
// O(h)复杂度, h为树的高度
33
- boolean isConnected ( int p , int q ){
33
+ public boolean isConnected ( int p , int q ){
34
34
return find (p ) == find (q );
35
35
}
36
36
37
37
// 合并元素p和元素q所属的集合
38
38
// O(h)复杂度, h为树的高度
39
- void unionElements (int p , int q ){
39
+ public void unionElements (int p , int q ){
40
40
41
41
int pRoot = find (p );
42
42
int qRoot = find (q );
Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ public UnionFind3(int count){
21
21
22
22
// 查找过程, 查找元素p所对应的集合编号
23
23
// O(h)复杂度, h为树的高度
24
- int find (int p ){
24
+ private int find (int p ){
25
25
assert ( p >= 0 && p < count );
26
26
// 不断去查询自己的父亲节点, 直到到达根节点
27
27
// 根节点的特点: parent[p] == p
@@ -32,13 +32,13 @@ int find(int p){
32
32
33
33
// 查看元素p和元素q是否所属一个集合
34
34
// O(h)复杂度, h为树的高度
35
- boolean isConnected ( int p , int q ){
35
+ public boolean isConnected ( int p , int q ){
36
36
return find (p ) == find (q );
37
37
}
38
38
39
39
// 合并元素p和元素q所属的集合
40
40
// O(h)复杂度, h为树的高度
41
- void unionElements (int p , int q ){
41
+ public void unionElements (int p , int q ){
42
42
43
43
int pRoot = find (p );
44
44
int qRoot = find (q );
Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ public UnionFind4(int count){
21
21
22
22
// 查找过程, 查找元素p所对应的集合编号
23
23
// O(h)复杂度, h为树的高度
24
- int find (int p ){
24
+ private int find (int p ){
25
25
assert ( p >= 0 && p < count );
26
26
// 不断去查询自己的父亲节点, 直到到达根节点
27
27
// 根节点的特点: parent[p] == p
@@ -32,13 +32,13 @@ int find(int p){
32
32
33
33
// 查看元素p和元素q是否所属一个集合
34
34
// O(h)复杂度, h为树的高度
35
- boolean isConnected ( int p , int q ){
35
+ public boolean isConnected ( int p , int q ){
36
36
return find (p ) == find (q );
37
37
}
38
38
39
39
// 合并元素p和元素q所属的集合
40
40
// O(h)复杂度, h为树的高度
41
- void unionElements (int p , int q ){
41
+ public void unionElements (int p , int q ){
42
42
43
43
int pRoot = find (p );
44
44
int qRoot = find (q );
You can’t perform that action at this time.
0 commit comments