Computer algorithms: Introduction to design and analysis (Addison-Wesley series in computer science)