Cormen, Thomas H. ; Leiserson, Charles Eric ; Rivest, Ronald Linn ; Stein, Clifford