Introduction to Algorithms, 2nd ed. (2001)

by T H Cormen, C E Leiserson, R L Rivest, C Stein