The algorithm design manual - Skiena, Steven S. (Springer-Verlag, 2010)