Introduction to Algorithms - Charles E. Leiserson (McGraw Hill)