Fundamentals of Computer Algorithms - Horowitz Ellis