Introduction to algorithms, 6th ed (1992)

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