Introduction to algorithms. (2001)

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