How egonschiele/grokking_algorithms works
This repository accompanies Grokking Algorithms: readers study standalone, readable implementations of the book’s concepts, often in several languages, and inspect their results. The tree shows coverage from search and sorting through graph algorithms and dynamic programming; sampled programs demonstrate console output, but the examples are not wired into a shared application. Paths identify representative implementations. Some capabilities are evident from the tree but their internal wiring was not sampled.
Main entry points: binary_search.py Binary search · Program.cs Selection sort · src/main.rs Quicksort and basics · src/main.rs Breadth-first search
Components 12
Search and sorting
- Binary search
01_introduction_to_algorithms/python/binary_search.py - Selection sort
02_selection_sort/csharp/01_selection_sort/Program.cs - Recursion examples
03_recursion/python/03_factorial.py - Quicksort and basics
04_quicksort/rust/src/main.rs
Data structures
- Hash tables
05_hash_tables/javascript/03_hashtable.js
Graph algorithms
- Breadth-first search
06_breadth-first_search/rust/src/main.rs - Tree traversal
07_trees/java/Main.java - Dijkstra’s algorithm
09_dijkstras_algorithm/rust/src/main.rs
Optimization
- Greedy set cover
10_greedy_algorithms/rust/src/main.rs - Dynamic programming
11_dynamic_programming/rust/src/main.rs
Other components
- Reader
- Example output
Connections 18
- Reader → Binary search: studies
- Reader → Selection sort: studies
- Reader → Recursion examples: studies
- Reader → Quicksort and basics: studies
- Reader → Hash tables: studies
- Reader → Breadth-first search: studies
- Reader → Tree traversal: studies
- Reader → Dijkstra’s algorithm: studies
- Reader → Greedy set cover: studies
- Reader → Dynamic programming: studies
- Binary search → Example output: prints or returns
- Selection sort → Example output: prints result
- Quicksort and basics → Example output: prints results
- Breadth-first search → Example output: prints search result
- Tree traversal → Example output: prints file names
- Dijkstra’s algorithm → Example output: prints costs
- Greedy set cover → Example output: prints stations
- Dynamic programming → Example output: prints tables