Analysis of algorithms : an active learning approach 2nd ed - McConnell, Jeffrey J. (Jones and Bartlett Publishers, 2008)