Beginning Algorithms by Simon Harris and James Ross