Fundamentals of computer algorithms - Horowitz, Ellis (Universities press, 2007)