Introduction to the design and analysis of algorithms - Levitin, Anany (Addison Wesley, 2003)