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