Thomas H.Cormen, Charles E. Leiserson, Ronald L. Rivest,Clifford Stein Introduction to algorithm 1292 - 3rd edition - MIT press 2009