Algorithms, 4th Edition by Robert Sedgewick