The art of algorithm design. (2021)