This repository documents my process of revisiting algorithms and data structures through hands-on implementations in Python, using the book Grokking Algorithms as a study guide.
The focus is not only solving exercises, but also explaining the reasoning, tradeoffs, complexity, and tests behind each implementation.
The goal is to rebuild implementation fluency, strengthen problem-solving fundamentals, and keep a clear record of how each algorithm works.
python/: algorithm implementations in Python- each algorithm folder contains code, examples, and simple tests
- Binary search
- Selection sort
- Recursion
- Quicksort
- Hash tables
- Breadth-first search
- Dijkstra's algorithm
- Greedy algorithms
- Dynamic programming
For each algorithm, I plan to:
- Read the chapter.
- Implement the algorithm from memory.
- Add examples and simple tests.
- Document the idea, complexity, and use cases.
- Review and improve the implementation.