diff --git a/.github/workflows/javadoc.yml b/.github/workflows/javadoc.yml index a5929f94..0c111d1f 100644 --- a/.github/workflows/javadoc.yml +++ b/.github/workflows/javadoc.yml @@ -16,10 +16,10 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Set up Java 21 + - name: Set up Java 25 uses: actions/setup-java@v4 with: - java-version: '21' + java-version: '25' distribution: 'temurin' cache: maven diff --git a/README.md b/README.md index b5b6ab46..34b807d8 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ A collection of **algorithm implementations** covering fundamental computer scie ## 🚀 Quick Start ### Prerequisites -- **Java 21+** (project compiles with Java 21) +- **Java 25+** (project compiles with Java 21) - **Maven 3.6+** (tested with 3.9+, uses plugins requiring 3.6+) - **JUnit 5.10+** (managed automatically by Maven) - Git (optional) diff --git a/pom.xml b/pom.xml index b3c73f30..383b66c6 100644 --- a/pom.xml +++ b/pom.xml @@ -5,15 +5,16 @@ 1.0.0 - 21 - 21 + 25 + 25 - src/main/java + src + src - src/main/java + src **/*.java @@ -24,6 +25,17 @@ org.apache.maven.plugins maven-compiler-plugin 3.15.0 + + + + main/** + test/** + + + main/** + test/** + + org.apache.maven.plugins @@ -38,6 +50,8 @@ package -Xdoclint:-html,-missing UTF-8 + + ${basedir}/src @@ -47,18 +61,18 @@ org.junit.jupiter junit-jupiter-api - 5.10.2 + 5.12.2 org.junit.jupiter junit-jupiter-engine - 5.10.2 + 5.12.2 test org.junit.vintage junit-vintage-engine - 5.10.2 + 5.12.2 test @@ -73,57 +87,4 @@ - - - - ci - - - src/main/java - - - - - - src/topics - - **/*.java - - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 3.6.0 - - - add-source - generate-sources - - add-source - - - - src/topics - - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - - - ${basedir}/src - - - - - - - \ No newline at end of file diff --git a/src/topics/branchandbound/agents/AgentsTasks.java b/src/topics/branchandbound/agents/AgentsTasks.java index 8beb2c9f..daf0c1e7 100644 --- a/src/topics/branchandbound/agents/AgentsTasks.java +++ b/src/topics/branchandbound/agents/AgentsTasks.java @@ -5,8 +5,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import topics.branchandbound.BranchAndBound; -import topics.branchandbound.Node; +import topics.branchandbound.utils.BranchAndBound; +import topics.branchandbound.utils.Node; /** *

Task Assignment

diff --git a/src/topics/branchandbound/eightpuzzle/EightPuzzle.java b/src/topics/branchandbound/eightpuzzle/EightPuzzle.java index c12bca47..18a6c374 100644 --- a/src/topics/branchandbound/eightpuzzle/EightPuzzle.java +++ b/src/topics/branchandbound/eightpuzzle/EightPuzzle.java @@ -3,8 +3,8 @@ import java.util.ArrayList; import java.util.UUID; -import topics.branchandbound.BranchAndBound; -import topics.branchandbound.Node; +import topics.branchandbound.utils.BranchAndBound; +import topics.branchandbound.utils.Node; /** *

The 8-Puzzle

diff --git a/src/topics/branchandbound/rectangles/Game.java b/src/topics/branchandbound/rectangles/Game.java index 610928c8..925d0baf 100644 --- a/src/topics/branchandbound/rectangles/Game.java +++ b/src/topics/branchandbound/rectangles/Game.java @@ -4,7 +4,7 @@ import java.util.List; import java.util.UUID; -import topics.branchandbound.Node; +import topics.branchandbound.utils.Node; /** *

Board State for Rectangle Placement

diff --git a/src/topics/branchandbound/rectangles/RectanglesPlacement.java b/src/topics/branchandbound/rectangles/RectanglesPlacement.java index a5733d6d..787af95a 100644 --- a/src/topics/branchandbound/rectangles/RectanglesPlacement.java +++ b/src/topics/branchandbound/rectangles/RectanglesPlacement.java @@ -4,8 +4,8 @@ import java.util.List; import java.util.UUID; -import topics.branchandbound.BranchAndBound; -import topics.branchandbound.Node; +import topics.branchandbound.utils.BranchAndBound; +import topics.branchandbound.utils.Node; /** *

Optimal Placement of Rectangles

diff --git a/src/topics/branchandbound/rectangles/RectanglesPlacementTestTime.java b/src/topics/branchandbound/rectangles/RectanglesPlacementTestTime.java index 09a030ba..4098873d 100644 --- a/src/topics/branchandbound/rectangles/RectanglesPlacementTestTime.java +++ b/src/topics/branchandbound/rectangles/RectanglesPlacementTestTime.java @@ -4,7 +4,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import topics.branchandbound.BranchAndBound; +import topics.branchandbound.utils.BranchAndBound; /** *

Sequential Performance Benchmark (Rectangle Placement)

diff --git a/src/topics/branchandbound/rectangles/RectanglesPlacementTestTimeThreads.java b/src/topics/branchandbound/rectangles/RectanglesPlacementTestTimeThreads.java index ebd1f9b7..e260fd7b 100644 --- a/src/topics/branchandbound/rectangles/RectanglesPlacementTestTimeThreads.java +++ b/src/topics/branchandbound/rectangles/RectanglesPlacementTestTimeThreads.java @@ -4,7 +4,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import topics.branchandbound.BranchAndBoundThreads; +import topics.branchandbound.utils.threads.BranchAndBoundThreads; /** *

Concurrent Performance Benchmark (Rectangle Placement)

diff --git a/src/topics/branchandbound/rectangles/RectanglesPlacementThreads.java b/src/topics/branchandbound/rectangles/RectanglesPlacementThreads.java index a5c34b3a..70701c40 100644 --- a/src/topics/branchandbound/rectangles/RectanglesPlacementThreads.java +++ b/src/topics/branchandbound/rectangles/RectanglesPlacementThreads.java @@ -2,7 +2,7 @@ import java.util.List; -import topics.branchandbound.BranchAndBoundThreads; +import topics.branchandbound.utils.threads.BranchAndBoundThreads; /** *

Optimal Placement of Rectangles (Concurrent Execution)

diff --git a/src/topics/branchandbound/utils/BranchAndBound.java b/src/topics/branchandbound/utils/BranchAndBound.java index 68c15af8..9b716a15 100644 --- a/src/topics/branchandbound/utils/BranchAndBound.java +++ b/src/topics/branchandbound/utils/BranchAndBound.java @@ -1,4 +1,4 @@ -package topics.branchandbound; +package topics.branchandbound.utils; import java.util.List; import org.slf4j.Logger; diff --git a/src/topics/branchandbound/utils/Heap.java b/src/topics/branchandbound/utils/Heap.java index 3194202c..a573a59e 100644 --- a/src/topics/branchandbound/utils/Heap.java +++ b/src/topics/branchandbound/utils/Heap.java @@ -1,4 +1,4 @@ -package topics.branchandbound; +package topics.branchandbound.utils; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/topics/branchandbound/utils/Node.java b/src/topics/branchandbound/utils/Node.java index 7c3f4653..4e7be3e8 100644 --- a/src/topics/branchandbound/utils/Node.java +++ b/src/topics/branchandbound/utils/Node.java @@ -1,4 +1,4 @@ -package topics.branchandbound; +package topics.branchandbound.utils; import java.util.List; import java.util.Objects; diff --git a/src/topics/branchandbound/utils/threads/BranchAndBoundThreads.java b/src/topics/branchandbound/utils/threads/BranchAndBoundThreads.java index 35220f4d..faaec7ec 100644 --- a/src/topics/branchandbound/utils/threads/BranchAndBoundThreads.java +++ b/src/topics/branchandbound/utils/threads/BranchAndBoundThreads.java @@ -1,10 +1,12 @@ -package topics.branchandbound; +package topics.branchandbound.utils.threads; import java.util.ArrayList; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import topics.branchandbound.utils.Node; + /** *

Concurrent Branch and Bound Execution Engine

*

diff --git a/src/topics/branchandbound/utils/threads/HeapThreads.java b/src/topics/branchandbound/utils/threads/HeapThreads.java index 4a478538..491034c8 100644 --- a/src/topics/branchandbound/utils/threads/HeapThreads.java +++ b/src/topics/branchandbound/utils/threads/HeapThreads.java @@ -1,4 +1,4 @@ -package topics.branchandbound; +package topics.branchandbound.utils.threads; import java.util.ArrayList; import java.util.Collections; @@ -9,6 +9,8 @@ import java.util.concurrent.ConcurrentMap; import java.util.concurrent.PriorityBlockingQueue; +import topics.branchandbound.utils.Node; + /** *

Concurrent State Space Queue (Heap)

*

diff --git a/src/topics/branchandbound/utils/threads/WorkerThread.java b/src/topics/branchandbound/utils/threads/WorkerThread.java index 07bd108f..caea1c8e 100644 --- a/src/topics/branchandbound/utils/threads/WorkerThread.java +++ b/src/topics/branchandbound/utils/threads/WorkerThread.java @@ -1,8 +1,10 @@ -package topics.branchandbound; +package topics.branchandbound.utils.threads; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import topics.branchandbound.utils.Node; + /** *

Concurrent Worker Thread

*

diff --git a/src/topics/divideconquer/maxsum/MaxSum.java b/src/topics/divideconquer/maxsum/MaxSum.java index 050b18bd..850a9c56 100644 --- a/src/topics/divideconquer/maxsum/MaxSum.java +++ b/src/topics/divideconquer/maxsum/MaxSum.java @@ -91,6 +91,7 @@ private int maxSumByDivision(int left, int right, int[] v) { } // Prevent Integer Overflow mathematically + // (left + right) / 2 can overflow if left and right are large, so we use: int center = left + (right - left) / 2; int maxLeft = maxSumByDivision(left, center, v); diff --git a/src/topics/divideconquer/maxsum/MaxSumBenchmark.java b/src/topics/divideconquer/maxsum/MaxSumBenchmark.java new file mode 100644 index 00000000..a9f395c0 --- /dev/null +++ b/src/topics/divideconquer/maxsum/MaxSumBenchmark.java @@ -0,0 +1,62 @@ +package topics.divideconquer.maxsum; + +import java.util.concurrent.ThreadLocalRandom; + +/** + *

Empirical Runtime Analysis for Maximum Subarray Sum

+ *

+ * This benchmarking utility demonstrates the dramatic performance differences + * between algorithmic complexities: Cubic O(N³), Quadratic O(N²), + * and Linearithmic O(N log N). + *

+ * + *

Educational Note

+ *

+ * The execution loop is strictly capped at N = 4096. + * If allowed to scale indefinitely, the O(N³) algorithm would cause + * the CPU to hang for hours due to combinatorial explosion. + *

+ * + * @author vicegd + */ +public class MaxSumBenchmark { + public static void main(String[] args) { + MaxSum engine = new MaxSum(); + + System.out.println("======================================================================="); + System.out.println(" BENCHMARKING MAXIMUM SUBARRAY SUM: O(N³) vs O(N²) vs O(N log N) "); + System.out.println("======================================================================="); + System.out.printf("%-12s | %-15s | %-15s | %-15s%n", "Array Size", "Cubic O(N³)", "Quadratic O(N²)", "D&C O(N log N)"); + System.out.println("-----------------------------------------------------------------------"); + + // Capped at 4096 to prevent the Cubic algorithm from freezing the execution environment. + for (int n = 10; n <= 4096; n *= 2) { + int[] v = new int[n]; + + // Populate with both positive and negative values (crucial for this specific problem) + for (int i = 0; i < n; i++) { + v[i] = ThreadLocalRandom.current().nextInt(-1000, 1000); + } + + // 1. Measure Cubic Time O(N³) + long t1 = System.currentTimeMillis(); + engine.maxSubarrayCubic(v); + long t2 = System.currentTimeMillis(); + + // 2. Measure Quadratic Time O(N²) + long t3 = System.currentTimeMillis(); + engine.maxSubarrayQuadratic(v); + long t4 = System.currentTimeMillis(); + + // 3. Measure Divide & Conquer Time O(N log N) + long t5 = System.currentTimeMillis(); + engine.maxSubarrayDivideAndConquer(v); + long t6 = System.currentTimeMillis(); + + // Output formatted results + System.out.printf("N = %-8d | %-12d ms | %-12d ms | %-12d ms%n", + n, (t2 - t1), (t4 - t3), (t6 - t5)); + } + System.out.println("======================================================================="); + } +} \ No newline at end of file diff --git a/src/topics/divideconquer/median/Median.java b/src/topics/divideconquer/median/Median.java index 47dc2f45..204a2a00 100644 --- a/src/topics/divideconquer/median/Median.java +++ b/src/topics/divideconquer/median/Median.java @@ -1,7 +1,5 @@ package topics.divideconquer.median; -import topics.sorting.quicksort.Quicksort; - /** *

Median Calculation

*

@@ -42,10 +40,9 @@ public int medianBySorting(int[] v) { // Prevent side-effects: Do not mutate the original array int[] copy = v.clone(); - - Quicksort quicksort = new Quicksort(); - quicksort.sort(copy); - + + sort(copy, 0, copy.length - 1); + int centerPosition = copy.length / 2; return copy[centerPosition]; } @@ -82,6 +79,14 @@ public int medianQuickselect(int[] v) { * Private Quickselect recursive helper. * Finds the k-th smallest element within the segment boundaries. */ + /** Recursive quicksort using the local Util partition scheme. */ + private void sort(int[] v, int left, int right) { + if (left >= right) return; + int pivot = Util.partition(v, left, right); + sort(v, left, pivot - 1); + sort(v, pivot + 1, right); + } + private int quickselect(int left, int right, int[] v, int k) { // Base case: If the segment is only one element long, we've found it if (left == right) { diff --git a/src/topics/introduction/helloworld/HelloWorld.java b/src/topics/introduction/helloworld/HelloWorld.java index 0f14e31c..d1af0d01 100644 --- a/src/topics/introduction/helloworld/HelloWorld.java +++ b/src/topics/introduction/helloworld/HelloWorld.java @@ -1,4 +1,4 @@ -package topics.introduction; +package topics.introduction.helloworld; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/topics/introduction/helloworld/HelloWorldTest.java b/src/topics/introduction/helloworld/HelloWorldTest.java index 5ab3e052..6c22506b 100644 --- a/src/topics/introduction/helloworld/HelloWorldTest.java +++ b/src/topics/introduction/helloworld/HelloWorldTest.java @@ -1,4 +1,4 @@ -package topics.introduction; +package topics.introduction.helloworld; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; diff --git a/src/topics/introduction/maximum/GetMaximumFromList.java b/src/topics/introduction/maximum/GetMaximumFromList.java index 929d9ca9..1a2b826c 100644 --- a/src/topics/introduction/maximum/GetMaximumFromList.java +++ b/src/topics/introduction/maximum/GetMaximumFromList.java @@ -1,4 +1,4 @@ -package topics.introduction; +package topics.introduction.maximum; /** *

Maximum Value Extraction

diff --git a/src/topics/introduction/maximum/GetMaximumFromListTest.java b/src/topics/introduction/maximum/GetMaximumFromListTest.java index 95a19d5c..456fca78 100644 --- a/src/topics/introduction/maximum/GetMaximumFromListTest.java +++ b/src/topics/introduction/maximum/GetMaximumFromListTest.java @@ -1,4 +1,4 @@ -package topics.introduction; +package topics.introduction.maximum; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; diff --git a/src/topics/introduction/search/Search.java b/src/topics/introduction/search/Search.java index d8495dcd..1eed542f 100644 --- a/src/topics/introduction/search/Search.java +++ b/src/topics/introduction/search/Search.java @@ -1,4 +1,4 @@ -package topics.introduction; +package topics.introduction.search; import java.util.List; diff --git a/src/topics/introduction/search/SearchTest.java b/src/topics/introduction/search/SearchTest.java index 8978600a..19ed9023 100644 --- a/src/topics/introduction/search/SearchTest.java +++ b/src/topics/introduction/search/SearchTest.java @@ -1,4 +1,4 @@ -package topics.introduction; +package topics.introduction.search; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; diff --git a/src/topics/introduction/sum/GetAdditionFromList.java b/src/topics/introduction/sum/GetAdditionFromList.java index 22392981..92def316 100644 --- a/src/topics/introduction/sum/GetAdditionFromList.java +++ b/src/topics/introduction/sum/GetAdditionFromList.java @@ -1,4 +1,4 @@ -package topics.introduction; +package topics.introduction.sum; /** *

Array Summation

diff --git a/src/topics/introduction/sum/GetAdditionFromListTest.java b/src/topics/introduction/sum/GetAdditionFromListTest.java index 1c9d3816..f67809b8 100644 --- a/src/topics/introduction/sum/GetAdditionFromListTest.java +++ b/src/topics/introduction/sum/GetAdditionFromListTest.java @@ -1,4 +1,4 @@ -package topics.introduction; +package topics.introduction.sum; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; diff --git a/src/topics/parallel/utils/ParallelismInfoTest.java b/src/topics/parallel/utils/ParallelismInfoTest.java index eb15e07a..90534e50 100644 --- a/src/topics/parallel/utils/ParallelismInfoTest.java +++ b/src/topics/parallel/utils/ParallelismInfoTest.java @@ -1,4 +1,4 @@ -package topics.parallel; +package topics.parallel.utils; import org.junit.jupiter.api.Test; import org.slf4j.Logger; diff --git a/src/topics/sorting/bubble/BidirectionalBubble.java b/src/topics/sorting/bubble/BidirectionalBubble.java index 068feae2..c736a26c 100644 --- a/src/topics/sorting/bubble/BidirectionalBubble.java +++ b/src/topics/sorting/bubble/BidirectionalBubble.java @@ -3,8 +3,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import topics.sorting.SortingAlgorithm; -import topics.sorting.Util; +import topics.sorting.utils.SortingAlgorithm; +import topics.sorting.utils.Util; /** *

Bidirectional Bubble Sort (Cocktail Shaker Sort)

diff --git a/src/topics/sorting/bubble/BidirectionalBubbleTest.java b/src/topics/sorting/bubble/BidirectionalBubbleTest.java index dc5ad591..c82ea258 100644 --- a/src/topics/sorting/bubble/BidirectionalBubbleTest.java +++ b/src/topics/sorting/bubble/BidirectionalBubbleTest.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import topics.sorting.SortingAlgorithm; +import topics.sorting.utils.SortingAlgorithm; import static org.junit.jupiter.api.Assertions.assertArrayEquals; diff --git a/src/topics/sorting/bubble/Bubble.java b/src/topics/sorting/bubble/Bubble.java index 74555658..7da9d9ab 100644 --- a/src/topics/sorting/bubble/Bubble.java +++ b/src/topics/sorting/bubble/Bubble.java @@ -3,8 +3,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import topics.sorting.SortingAlgorithm; -import topics.sorting.Util; +import topics.sorting.utils.SortingAlgorithm; +import topics.sorting.utils.Util; /** *

Bubble Sort (Left-Bubbling)

diff --git a/src/topics/sorting/bubble/BubbleSentinel.java b/src/topics/sorting/bubble/BubbleSentinel.java index 3c39170c..6b801199 100644 --- a/src/topics/sorting/bubble/BubbleSentinel.java +++ b/src/topics/sorting/bubble/BubbleSentinel.java @@ -3,8 +3,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import topics.sorting.SortingAlgorithm; -import topics.sorting.Util; +import topics.sorting.utils.SortingAlgorithm; +import topics.sorting.utils.Util; /** *

Bubble Sort (Optimized with Sentinel)

diff --git a/src/topics/sorting/bubble/BubbleSentinelTest.java b/src/topics/sorting/bubble/BubbleSentinelTest.java index 64d3e76b..191250ea 100644 --- a/src/topics/sorting/bubble/BubbleSentinelTest.java +++ b/src/topics/sorting/bubble/BubbleSentinelTest.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import topics.sorting.SortingAlgorithm; +import topics.sorting.utils.SortingAlgorithm; import static org.junit.jupiter.api.Assertions.assertArrayEquals; diff --git a/src/topics/sorting/bubble/BubbleTest.java b/src/topics/sorting/bubble/BubbleTest.java index b7b92cfb..31fa2bbf 100644 --- a/src/topics/sorting/bubble/BubbleTest.java +++ b/src/topics/sorting/bubble/BubbleTest.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import topics.sorting.SortingAlgorithm; +import topics.sorting.utils.SortingAlgorithm; import static org.junit.jupiter.api.Assertions.assertArrayEquals; diff --git a/src/topics/sorting/heapsort/Heapsort.java b/src/topics/sorting/heapsort/Heapsort.java index 3530da6c..29d800b7 100644 --- a/src/topics/sorting/heapsort/Heapsort.java +++ b/src/topics/sorting/heapsort/Heapsort.java @@ -3,8 +3,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import topics.sorting.SortingAlgorithm; -import topics.sorting.Util; +import topics.sorting.utils.SortingAlgorithm; +import topics.sorting.utils.Util; /** *

Heapsort

diff --git a/src/topics/sorting/heapsort/HeapsortTest.java b/src/topics/sorting/heapsort/HeapsortTest.java index 4b6558e6..72600e93 100644 --- a/src/topics/sorting/heapsort/HeapsortTest.java +++ b/src/topics/sorting/heapsort/HeapsortTest.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import topics.sorting.SortingAlgorithm; +import topics.sorting.utils.SortingAlgorithm; import static org.junit.jupiter.api.Assertions.assertArrayEquals; diff --git a/src/topics/sorting/insertion/BinaryInsertion.java b/src/topics/sorting/insertion/BinaryInsertion.java index b15c78c0..5fd1c97c 100644 --- a/src/topics/sorting/insertion/BinaryInsertion.java +++ b/src/topics/sorting/insertion/BinaryInsertion.java @@ -3,8 +3,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import topics.sorting.SortingAlgorithm; -import topics.sorting.Util; +import topics.sorting.utils.SortingAlgorithm; +import topics.sorting.utils.Util; /** *

Binary Insertion Sort

diff --git a/src/topics/sorting/insertion/BinaryInsertionTest.java b/src/topics/sorting/insertion/BinaryInsertionTest.java index 1b7bb9d6..62847323 100644 --- a/src/topics/sorting/insertion/BinaryInsertionTest.java +++ b/src/topics/sorting/insertion/BinaryInsertionTest.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import topics.sorting.SortingAlgorithm; +import topics.sorting.utils.SortingAlgorithm; import static org.junit.jupiter.api.Assertions.assertArrayEquals; diff --git a/src/topics/sorting/insertion/DirectInsertion.java b/src/topics/sorting/insertion/DirectInsertion.java index 325313fd..8e692839 100644 --- a/src/topics/sorting/insertion/DirectInsertion.java +++ b/src/topics/sorting/insertion/DirectInsertion.java @@ -3,8 +3,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import topics.sorting.SortingAlgorithm; -import topics.sorting.Util; +import topics.sorting.utils.SortingAlgorithm; +import topics.sorting.utils.Util; /** *

Direct Insertion Sort

diff --git a/src/topics/sorting/insertion/DirectInsertionTest.java b/src/topics/sorting/insertion/DirectInsertionTest.java index da88f817..c8653a81 100644 --- a/src/topics/sorting/insertion/DirectInsertionTest.java +++ b/src/topics/sorting/insertion/DirectInsertionTest.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import topics.sorting.SortingAlgorithm; +import topics.sorting.utils.SortingAlgorithm; import static org.junit.jupiter.api.Assertions.assertArrayEquals; diff --git a/src/topics/sorting/mergesort/Mergesort.java b/src/topics/sorting/mergesort/Mergesort.java index c7579356..112894a2 100644 --- a/src/topics/sorting/mergesort/Mergesort.java +++ b/src/topics/sorting/mergesort/Mergesort.java @@ -3,8 +3,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import topics.sorting.SortingAlgorithm; -import topics.sorting.Util; +import topics.sorting.utils.SortingAlgorithm; +import topics.sorting.utils.Util; /** *

Mergesort

diff --git a/src/topics/sorting/mergesort/MergesortTests.java b/src/topics/sorting/mergesort/MergesortTests.java index 088e227d..00632fac 100644 --- a/src/topics/sorting/mergesort/MergesortTests.java +++ b/src/topics/sorting/mergesort/MergesortTests.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import topics.sorting.SortingAlgorithm; +import topics.sorting.utils.SortingAlgorithm; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/topics/sorting/quicksort/Quicksort.java b/src/topics/sorting/quicksort/Quicksort.java index 0f1f45fe..7a051479 100644 --- a/src/topics/sorting/quicksort/Quicksort.java +++ b/src/topics/sorting/quicksort/Quicksort.java @@ -3,8 +3,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import topics.sorting.SortingAlgorithm; -import topics.sorting.Util; +import topics.sorting.utils.SortingAlgorithm; +import topics.sorting.utils.Util; /** *

Quicksort (Median-of-Three)

diff --git a/src/topics/sorting/quicksort/QuicksortTest.java b/src/topics/sorting/quicksort/QuicksortTest.java index fc0df4d6..841f2e7d 100644 --- a/src/topics/sorting/quicksort/QuicksortTest.java +++ b/src/topics/sorting/quicksort/QuicksortTest.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import topics.sorting.SortingAlgorithm; +import topics.sorting.utils.SortingAlgorithm; import static org.junit.jupiter.api.Assertions.assertArrayEquals; diff --git a/src/topics/sorting/radix/Radix.java b/src/topics/sorting/radix/Radix.java index 809fd623..d758e24e 100644 --- a/src/topics/sorting/radix/Radix.java +++ b/src/topics/sorting/radix/Radix.java @@ -3,8 +3,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import topics.sorting.SortingAlgorithm; -import topics.sorting.Util; +import topics.sorting.utils.SortingAlgorithm; +import topics.sorting.utils.Util; import java.util.ArrayDeque; import java.util.Queue; diff --git a/src/topics/sorting/radix/RadixTest.java b/src/topics/sorting/radix/RadixTest.java index 5c877fef..39007f89 100644 --- a/src/topics/sorting/radix/RadixTest.java +++ b/src/topics/sorting/radix/RadixTest.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import topics.sorting.SortingAlgorithm; +import topics.sorting.utils.SortingAlgorithm; import static org.junit.jupiter.api.Assertions.assertArrayEquals; diff --git a/src/topics/sorting/selection/DirectSelection.java b/src/topics/sorting/selection/DirectSelection.java index 9cbc9db1..36654ae4 100644 --- a/src/topics/sorting/selection/DirectSelection.java +++ b/src/topics/sorting/selection/DirectSelection.java @@ -3,8 +3,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import topics.sorting.SortingAlgorithm; -import topics.sorting.Util; +import topics.sorting.utils.SortingAlgorithm; +import topics.sorting.utils.Util; /** *

Direct Selection Sort

diff --git a/src/topics/sorting/selection/DirectSelectionTest.java b/src/topics/sorting/selection/DirectSelectionTest.java index f6235869..496565c8 100644 --- a/src/topics/sorting/selection/DirectSelectionTest.java +++ b/src/topics/sorting/selection/DirectSelectionTest.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import topics.sorting.SortingAlgorithm; +import topics.sorting.utils.SortingAlgorithm; import static org.junit.jupiter.api.Assertions.assertArrayEquals; diff --git a/src/topics/sorting/shellsort/Shellsort.java b/src/topics/sorting/shellsort/Shellsort.java index 46601680..4009bd84 100644 --- a/src/topics/sorting/shellsort/Shellsort.java +++ b/src/topics/sorting/shellsort/Shellsort.java @@ -3,8 +3,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import topics.sorting.SortingAlgorithm; -import topics.sorting.Util; +import topics.sorting.utils.SortingAlgorithm; +import topics.sorting.utils.Util; /** *

Shellsort

diff --git a/src/topics/sorting/shellsort/ShellsortTest.java b/src/topics/sorting/shellsort/ShellsortTest.java index 33807d69..c1aecfa5 100644 --- a/src/topics/sorting/shellsort/ShellsortTest.java +++ b/src/topics/sorting/shellsort/ShellsortTest.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import topics.sorting.SortingAlgorithm; +import topics.sorting.utils.SortingAlgorithm; import static org.junit.jupiter.api.Assertions.assertArrayEquals; diff --git a/src/topics/sorting/utils/SortingAlgorithm.java b/src/topics/sorting/utils/SortingAlgorithm.java index 6c18f547..00560ffa 100644 --- a/src/topics/sorting/utils/SortingAlgorithm.java +++ b/src/topics/sorting/utils/SortingAlgorithm.java @@ -1,5 +1,5 @@ -package topics.sorting; +package topics.sorting.utils; /** *

Sorting Algorithm Contract

diff --git a/src/topics/sorting/utils/Util.java b/src/topics/sorting/utils/Util.java index d57b8fdd..f12798d5 100644 --- a/src/topics/sorting/utils/Util.java +++ b/src/topics/sorting/utils/Util.java @@ -1,4 +1,4 @@ -package topics.sorting; +package topics.sorting.utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory;