https://dl.acm.org/doi/book/10.5555/1614191 Authors Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest Clifford Stein