A concise and practical introduction to programming algorithms in Java - Nielsen, Frank (Undergraduate Topics in Computer Science / series editor Ian Mackie, 2009)