9787302207276: The Algorithm Design Manual