All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
build.gradle/settings.gradleso the project actually builds via./gradlew(previously missing, despite the wrapper being present).- JUnit 5 test suite (
src/test/java, 269 tests) covering all 14 sorting algorithms, the search arena, graph traversal/shortest-path, Fibonacci, every data-structure sample's Big-O contract, and the core algorithm patterns (sliding window, two pointers, top-K, trapping rain water, merge intervals, group anagrams) against edge cases: empty, single-element, duplicates, negatives, already-sorted, reverse-sorted, and large random input. - Search arena:
BigOSearchcontract base class,Linear/Binary/Jumpimplementations, andSearchComparisonbenchmark — mirrors the sorting arena's structure so search has the same rigor. ScalingBenchmark: times every sorting algorithm across five input sizes (1k–16k) and prints the growth ratio between doublings, so the declared Big-O is empirically demonstrated rather than just labeled.- Graph algorithms:
GraphSamplegaineddepthFirstOrder/breadthFirstOrder(testable traversal order, not just println); newWeightedGraphSampleimplements Dijkstra's shortest-path algorithm. FibonacciComparison: times naive-recursive O(2^n) against iterative/memoized O(n) across increasing n to visually demonstrate exponential vs. linear growth.DataStructureShowcase: prints everydatastructures/sample's Big-O contract in one run, matching the sorting/search arenas.javafundamentalspackage: consolidates the generic Java-language demos (inheritance, static usage, singleton patterns, streams, production-incident debugging) that aren't part of the Big-O/algorithms reference.
Bucket,Counting, andRadixsorts threw exceptions or produced incorrect output on arrays containing negative numbers; all three now shift by the array's minimum value so negative input sorts correctly.SlidingWindow.maxSumSubarrayinitializedmaxSumto0, which returned an incorrect result (0instead of the true negative maximum) for all-negative input arrays.
- README no longer references a
BigOAnalysisannotation that didn't exist in the codebase; complexity contracts are documented as what they actually are — theBigOSort/BigOSearch/BigODataStructuresbase classes' abstract methods. - Moved
inheritance/,staticusage/,patterns/,streams/, anderror/ProductionSimulatorintojavafundamentals/so they no longer sit alongside the algorithm/data-structure reference content;error/InvalidArraySizestayed put sinceArraySampleactually uses it.
model/TwoDGraph.java— unused, and the only reason the project depended onlombok; removing it dropped that dependency too.
This repository previously hosted the Kafka Client Framework ("StreamKernel"). That project has moved to its own repository; see the migration notice in README.md. Earlier changelog entries describing Kafka/Avro/Postgres connector work applied to that codebase and have been retired here.