Skip to content

Commit fbed89a

Browse files
author
nars
committed
added simple union find
1 parent 616e05d commit fbed89a

File tree

1 file changed

+37
-5
lines changed

1 file changed

+37
-5
lines changed

UnionFindAlgo/src/eager/QuickFind/RuntimeArray.java

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
public class RuntimeArray {
77

88
private static int[] inputArray;
9+
private static Scanner scan;
910

1011
public static int readInput(){
11-
Scanner scan = new Scanner(System.in);
12-
System.out.println("enter");
12+
scan = new Scanner(System.in);
13+
System.out.println("\n enter a value");
1314
int readIntVal = scan.nextInt();
14-
scan.close();
1515
return readIntVal;
1616

1717
}
@@ -24,10 +24,42 @@ private static int[] initializeInput() {
2424
System.out.println("invlaid integer");
2525
}
2626
int[] inputAr = new int[n];
27-
System.out.println(inputArray.length + ": is the array size");
27+
for (int i = 0; i < inputAr.length; i++) {
28+
inputAr[i] = i;
29+
}
2830
return inputAr;
2931
}
32+
3033
public static void main(String[] args) {
31-
inputArray = initializeInput();;
34+
inputArray = initializeInput();
35+
boolean isConnected = false;
36+
do {
37+
int p = readInput();
38+
int q = readInput();
39+
isConnected = find(p,q);
40+
System.out.println(isConnected);
41+
if (!isConnected) {
42+
union(p, q);
43+
}
44+
}while(!isConnected);
45+
scan.close();
46+
for (int i = 0; i < inputArray.length; i++) {
47+
System.out.println(inputArray[i]);
48+
}
49+
}
50+
51+
public static boolean find(int p, int q)
52+
{
53+
return inputArray[p] == inputArray[q];
3254
}
55+
56+
public static void union(int p, int q)
57+
{
58+
int pid = inputArray[p];
59+
for (int i = 0; i < inputArray.length; i++) {
60+
if(inputArray[i] == pid)
61+
inputArray[i] = inputArray[q];
62+
}
63+
}
64+
3365
}

0 commit comments

Comments
 (0)