finds.dev← search

// the find

williamfiset/algorithms

★ 18,684 · Java · MIT · updated Jun 2026

A collection of algorithms and data structures

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →