Introduction to Algorithms, 2nd edition (2001)

by T Cormen, C Lesierson, L Rivest, C Stein