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