The Algorithm Design Manual - Skiena, Steven S. (Springer, 2012)