Skip to content

Latest commit

 

History

History
34 lines (26 loc) · 3.22 KB

File metadata and controls

34 lines (26 loc) · 3.22 KB

Changelog

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.


[Unreleased]

Added

  • build.gradle / settings.gradle so 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: BigOSearch contract base class, Linear/Binary/Jump implementations, and SearchComparison benchmark — 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: GraphSample gained depthFirstOrder/breadthFirstOrder (testable traversal order, not just println); new WeightedGraphSample implements 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 every datastructures/ sample's Big-O contract in one run, matching the sorting/search arenas.
  • javafundamentals package: 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.

Fixed

  • Bucket, Counting, and Radix sorts 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.maxSumSubarray initialized maxSum to 0, which returned an incorrect result (0 instead of the true negative maximum) for all-negative input arrays.

Changed

  • README no longer references a BigOAnalysis annotation that didn't exist in the codebase; complexity contracts are documented as what they actually are — the BigOSort/BigOSearch/BigODataStructures base classes' abstract methods.
  • Moved inheritance/, staticusage/, patterns/, streams/, and error/ProductionSimulator into javafundamentals/ so they no longer sit alongside the algorithm/data-structure reference content; error/InvalidArraySize stayed put since ArraySample actually uses it.

Removed

  • model/TwoDGraph.java — unused, and the only reason the project depended on lombok; removing it dropped that dependency too.

[Prior History]

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.