Introduction to algorithms (2ed (2001)

by Leiserson Cormen, Stein Rivest