finds.dev

williamfiset/algorithms

A collection of algorithms and data structures

View on GitHub

★ 18,684JavaMITupdated Jun 2026

// the take

A Java implementations library covering ~70 algorithms and data structures, from AVL trees to Dinic's max flow to suffix arrays. It's primarily a learning resource tied to a YouTube channel, not a production library you'd drop into a project. The companion videos are genuinely useful when the code alone doesn't explain the why.

The graph theory section is unusually thorough — you get multiple max flow algorithms (Ford-Fulkerson, Edmonds-Karp, Dinic's, capacity scaling) with different complexity tradeoffs, not just the textbook one. Bazel integration with per-package BUILD files means you can run a single algorithm in isolation without wiring up a full project. The suffix array section includes three construction variants at different complexities, which is rare. Complexity annotations are on every entry in the README, so you can compare at a glance.

Java-only, which rules it out for anyone not already on the JVM — the geometry section even has .js files mixed in, suggesting some implementations were never ported. No library artifact published to Maven Central, so you can't take a dependency on it; you're copying source files. Several geometry implementations are flagged [UNTESTED] right in the README, which is an honest admission but also a warning sign. The repo has slowed significantly — meaningful algorithm additions appear to have stopped years ago, and it doesn't cover some practically important algorithms like A*, B-trees, or skip list balancing beyond the basic structure.

We read the README, the directory tree and a key source file in July 2026. Nobody pays to be listed. How we judge →

// at a glance

Stars
18,684
Forks
4,513
Language
Java
License
MIT
Last commit
23 Jun 2026

// nearby

If algorithms isn't quite it.

All repos →