Introduction to Algorithms, chapter 32 (1990)

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