Written in an incredibly accessible format, Foundations of Algorithms, Fourth Edition offers a well-balanced presentation of algorithm design, complexity analysis of algorithms, and computational complexity, with numerous examples throughout.
This volume is accessible to mainstream computer science students who have a background in college algebra and discrete structures. To support their approach, the authors present mathematical concepts using standard English and a simpler notation than is found in most texts. A review of essential mathematical concepts is presented in three appendices. The authors also reinforce the explanations with numerous concrete examples to help students grasp theoretical concepts.
To help students better understand complex algorithms, the authors use C++ and Java pseudocode, as students are familiar with these languages from their intro programming and data structures courses. Furthermore, students are not required to have a calculus background. College algebra and discrete structures are the prerequisites for the text. The authors, both professors at Northeastern Illinois University, have included a chapter on numerical algorithms with a review of basic number theory, Euclid's Algorithm for finding the greatest common divisor, a review of modular arithmetic, an algorithm for solving modular linear equations, an algorithm for computing modular powers, and the new polynomial-time algorithm for determining whether a number is prime.