Introduction to Algorithms: Chapter 32 (2001)

by Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, Clifford Stein