Introduction to Algorithms
(Author: Thomas H. Cormen)