Effective algorithm design requires both a solid theoretical foundation and practical "war stories." These are the books that will guide you.
Primary Textbook
### The Algorithm Design Manual
Author: Steven S. Skiena | Edition: 3rd Edition
This is your main textbook. Skiena’s approach is famous for being "practitioner-first."
Why we use it:
War Stories: Real-world examples.
The Hitchhiker's Guide: A catalog of problems.
Reference Resource
### Beginning C
Author: Ivor Horton | Edition: 2013
Although we have moved to Python, this is a high-quality reference for low-level implementation.