Algorithms in Java - Sedgewick, Robert, 1946- (Pearson Education, 2003)