Introduction to algorithms (2009)

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