Algorithms - Sanjoy Dasgupta (McGraw Hill, 2008)