Foundations of algorithms - Neapolitan, Richard (Jones and Bartlett Pub., 2011)