algorithms from Introduction to Algorithms (Cormen)