Beginning Algorithms by Simon Harris & James Rossa