From e62e016308dc02df6ff7084549700d66f624d597 Mon Sep 17 00:00:00 2001 From: Dhanshreeb05 <44304377+Dhanshreeb05@users.noreply.github.com> Date: Thu, 22 Oct 2020 13:13:11 +0530 Subject: [PATCH 1/4] DBScan Algorithm in Java --- Java/DBScan.java | 135 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 Java/DBScan.java diff --git a/Java/DBScan.java b/Java/DBScan.java new file mode 100644 index 0000000..a2ed7d2 --- /dev/null +++ b/Java/DBScan.java @@ -0,0 +1,135 @@ +import java.util.*; + +public class DBScan { + + static void dbs(int n, ArrayList input, double erad, int minpts) { + int visited[] = new int[n]; + int vis = 0; + int no = 0; + int nclu = 0; + int inc = 0; + Set[] finalclu = new LinkedHashSet[n]; + finalclu[nclu] = new LinkedHashSet(); + ArrayList outlier=new ArrayList(); + while (vis < n) { + ArrayList cluster = new ArrayList(); + int pt = input.get(no); + for (int i = 0; i < n; i++) { + int p1 = input.get(i); + double d = Math.abs(pt - p1); + if (d <= erad) { + cluster.add(p1); + } + } + if (cluster.size() < minpts && finalclu[nclu].size() == 0) { + no++; + if (no == n) { + for (int i = 0; i < n; i++) { + if (visited[i] == 0) { + outlier.add(input.get(i)); + visited[i] = 1; + vis++; + } + } + } + while (no < n - 1 && visited[no] == 1) { + no++; + } + } else if (cluster.size() < minpts && finalclu[nclu].size() != 0) { + visited[no] = 1; + vis++; + int flag = 0; + Iterator j = finalclu[nclu].iterator(); + while (j.hasNext()) { + no = input.indexOf(j.next()); + if (visited[no] == 0) { + flag = 1; + pt = input.get(no); + break; + } + } + int f1 = 0; + if (flag == 0) { + for (int i = 0; i < n; i++) { + if (visited[i] == 0) { + f1 = 1; + no = i; + pt = input.get(no); + break; + } + } + nclu++; + finalclu[nclu] = new LinkedHashSet(); + } + if (f1 == 0 && flag == 0) + break; + } else if (cluster.size() >= minpts) { + visited[no] = 1; + vis++; + finalclu[nclu].addAll(cluster); + int flag = 0; + Iterator j = finalclu[nclu].iterator(); + while (j.hasNext()) { + no = input.indexOf(j.next()); + if (visited[no] == 0) { + flag = 1; + pt = input.get(no); + break; + } + } + int f1 = 0; + if (flag == 0) { + for (int i = 0; i < n; i++) { + if (visited[i] == 0) { + f1 = 1; + no = i; + pt = input.get(no); + break; + } + } + nclu++; + finalclu[nclu] = new LinkedHashSet(); + } + if (f1 == 0 && flag == 0) + break; + } + } + + for (int i = 0; i < nclu; i++) { + System.out.println("Cluster " + (i + 1) + ":"); + Iterator j = finalclu[i].iterator(); + while (j.hasNext()) { + System.out.print(j.next() + " "); + } + System.out.println(); + } + System.out.print("\nOutliers:\t"); + for(int i=0; i input = new ArrayList(); + + for (int i = 0; i < n; i++) { + System.out.println("For input " + (i + 1) + ":"); + System.out.println("Enter value:"); + int x = sc.nextInt(); + input.add(x); + } + + System.out.println("Enter E radius:"); + double erad = sc.nextDouble(); + + System.out.println("Enter MinPoints:"); + int minpts = sc.nextInt(); + + dbs(n, input, erad, minpts); + } + +} From e93739cc710a2a096257be355bb3a3955f5ba1eb Mon Sep 17 00:00:00 2001 From: Dhanshreeb05 <44304377+Dhanshreeb05@users.noreply.github.com> Date: Thu, 22 Oct 2020 13:16:58 +0530 Subject: [PATCH 2/4] Added DBScan algorithm in Java --- Java/DBScan.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Java/DBScan.java b/Java/DBScan.java index a2ed7d2..1b06146 100644 --- a/Java/DBScan.java +++ b/Java/DBScan.java @@ -12,6 +12,7 @@ static void dbs(int n, ArrayList input, double erad, int minpts) { finalclu[nclu] = new LinkedHashSet(); ArrayList outlier=new ArrayList(); while (vis < n) { + ArrayList cluster = new ArrayList(); int pt = input.get(no); for (int i = 0; i < n; i++) { From d56074a80eeeb1e4821c7ab50e885b9f242b5007 Mon Sep 17 00:00:00 2001 From: Dhanshreeb05 <44304377+Dhanshreeb05@users.noreply.github.com> Date: Thu, 22 Oct 2020 17:17:49 +0530 Subject: [PATCH 3/4] Added WaterJug in java --- Java/WaterJug.java | 134 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 Java/WaterJug.java diff --git a/Java/WaterJug.java b/Java/WaterJug.java new file mode 100644 index 0000000..0da91b0 --- /dev/null +++ b/Java/WaterJug.java @@ -0,0 +1,134 @@ +import java.util.*; + +public class WaterJug_3306 { + + void waterjug(int j1, int j2, int[] soln) { + int st = 1; + int x = j1, y = 0; + int flag1=0, flag2=0; + System.out.println("Step " + st + ":" + x + " " + y); + while (st < 30) { + if (x <= j1 && y < j2) { + st++; + if (x - (j2 - y) > 0) { + x = x - (j2 - y); + y = j2; + } else { + y = y + x; + x = 0; + } + System.out.println("Step " + st + ":" + x + " " + y); + if (x == soln[0] && y == soln[1]) { + System.out.println("Got Solution"); + flag1++; + break; + } + } + if (x == 0) { + x = j1; + st++; + System.out.println("Step " + st + ":" + x + " " + y); + if (x == soln[0] && y == soln[1]) { + System.out.println("Got Solution"); + flag1++; + break; + } + } + if (y == j2) { + y = 0; + st++; + System.out.println("Step " + st + ":" + x + " " + y); + if (x == soln[0] && y == soln[1]) { + System.out.println("Got Solution"); + flag1++; + break; + } + } + } + + int st1 = 1; + x = 0; + y = j2; + System.out.println("\n\n\n Step " + st1 + ":" + x + " " + y); + while (st1 < 30) { + if (y <= j2 && x < j1) { + st1++; + if ((j1 - x) < y) { + y = y - (j1 - x); + x = j1; + } else { + x = y + x; + y = 0; + } + System.out.println("Step " + st1 + ":" + x + " " + y); + if (x == soln[0] && y == soln[1]) { + System.out.println("Got Solution"); + flag2++; + break; + } + } + if (y == 0) { + y = j2; + st1++; + System.out.println("Step " + st1 + ":" + x + " " + y); + if (x == soln[0] && y == soln[1]) { + System.out.println("Got Solution"); + flag2++; + break; + } + } + if (x == j1) { + x = 0; + st1++; + System.out.println("Step " + st1 + ":" + x + " " + y); + if (x == soln[0] && y == soln[1]) { + System.out.println("Got Solution"); + flag2++; + break; + } + } + } + if (flag1!=0 && flag2!=0) + { + if(st Date: Thu, 22 Oct 2020 17:25:42 +0530 Subject: [PATCH 4/4] Modified Waterjug --- Java/WaterJug.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Java/WaterJug.java b/Java/WaterJug.java index 0da91b0..0a87707 100644 --- a/Java/WaterJug.java +++ b/Java/WaterJug.java @@ -1,6 +1,7 @@ import java.util.*; public class WaterJug_3306 { + /*Waterjug Program*/ void waterjug(int j1, int j2, int[] soln) { int st = 1;