Introduction to Algorithms: MIT Press; - Cormen, TH; Leiserson, C; Rivest, RL; Stein, C (2001)