try to build the most of algorithms from <introduction to Algorithms>