Algorithms in Java, Parts 1-4 3rd Edition