Fundamental Algorithms in Java