algorithms based around CLRS