From 458cdd3ddd2b52017dbd8a29a889848563eea2b7 Mon Sep 17 00:00:00 2001 From: William Jacobs Date: Mon, 18 Mar 2019 13:21:26 -0400 Subject: [PATCH] Fixed size calculation in optimizeForestEdges() This fixes the code in ConnGraph.optimizeForestEdges() that computes the resulting size after combining two Euler tour trees into one. Technically, the old behavior was still correct, but only by accident; this change is still kind of a bug fix. --- pom.xml | 2 +- .../btrekkie/connectivity/ConnGraph.java | 13 +++++++------ target/dynamic-connectivity-0.1.2.jar | Bin 16934 -> 0 bytes ...nectivity-0.1.3-jar-with-dependencies.jar} | Bin 36143 -> 36152 bytes target/dynamic-connectivity-0.1.3.jar | Bin 0 -> 16943 bytes 5 files changed, 8 insertions(+), 7 deletions(-) delete mode 100644 target/dynamic-connectivity-0.1.2.jar rename target/{dynamic-connectivity-0.1.2-jar-with-dependencies.jar => dynamic-connectivity-0.1.3-jar-with-dependencies.jar} (66%) create mode 100644 target/dynamic-connectivity-0.1.3.jar diff --git a/pom.xml b/pom.xml index 61902a166..8c90f5273 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.github.btrekkie.connectivity dynamic-connectivity - 0.1.2 + 0.1.3 dynamic-connectivity Data structure for dynamic connectivity in undirected graphs diff --git a/src/main/java/com/github/btrekkie/connectivity/ConnGraph.java b/src/main/java/com/github/btrekkie/connectivity/ConnGraph.java index 2150dd9fb..d9225011e 100644 --- a/src/main/java/com/github/btrekkie/connectivity/ConnGraph.java +++ b/src/main/java/com/github/btrekkie/connectivity/ConnGraph.java @@ -1073,20 +1073,21 @@ public class ConnGraph { EulerTourVertex lowerVertex1 = vertex; EulerTourVertex lowerVertex2 = edge.vertex2; for (int lowerLevel = level - 1; lowerLevel > 0; lowerLevel--) { - int size = 0; + // Compute the total size if we combine the Euler tour trees + int combinedSize = 1; if (lowerVertex1.lowerVertex != null) { - size = lowerVertex1.lowerVertex.arbitraryVisit.root().size; + combinedSize += lowerVertex1.lowerVertex.arbitraryVisit.root().size; } else { - size = 1; + combinedSize++; } if (lowerVertex2.lowerVertex != null) { - size += lowerVertex2.lowerVertex.arbitraryVisit.root().size; + combinedSize += lowerVertex2.lowerVertex.arbitraryVisit.root().size; } else { - size++; + combinedSize++; } // X EulerTourVertices = (2 * X - 1) EulerTourNodes - if (size > 2 * (1 << lowerLevel) - 1) { + if (combinedSize > 2 * (1 << lowerLevel) - 1) { break; } diff --git a/target/dynamic-connectivity-0.1.2.jar b/target/dynamic-connectivity-0.1.2.jar deleted file mode 100644 index c82ff9e749bbe93e4343bd6519299a411f20b9c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16934 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 F^gpjmQfL4G delta 10182 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 diff --git a/target/dynamic-connectivity-0.1.3.jar b/target/dynamic-connectivity-0.1.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..cf2ff3a839315282b61eb2acb68df503a457b8d6 GIT binary patch literal 16943 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