McGraw-Hill Higher Education, 2008. - 332 pages.
This text explains the fundamentals of algorithms in a story line that makes the material enjoyable and easy to digest. Emphasis is placed on understanding the crisp mathematical idea behind each algorithm, in a manner that is intuitive and rigorous without being unduly formal.
Include: The use of boxes to strengthen the narrative: pieces that provide historical context, descriptions of how the algorithms are used in practice, and excursions for the mathematically sophisticated.
Carefully chosen advanced topics coveres in an advanced algorithms course or in a more leisurely two-semester sequence.
An accessible treatment of linear programming introduces students to one of the greatest achievements in algorithms.
An optional chapter on the quantum algorithm for factoring provides a unique peephole into this exciting topic.
PrologueBooks and algorithms
Enter Fibonacci
Big-0 notation
Exercises
Algorithms with numbersBasic arithmetic
Modular arithmetic
Primality testing
Cryptography
Universal hashing
Exercises
Randomized algorithms: a virtual chapter
Divide-and-conquer algorithmsMultiplication
Recurrence relations
Mergesort
Medians
Matrix multiplication
The fast Fourier transform
Exercises
Decompositions of graphsWhy graphs?
Depth-first search in undirected graphs
Depth-first search in directed graphs
Strongly connected components
Exercises
Paths in graphsDistances
Breadth-first search
Lengths on edges
Dijkstra’s algorithm
Priority queue implementations
Shortest paths in the presence of negative edges
Shortest paths in dags
Exercises
Greedy algorithmsMinimum spanning trees
Huffman encoding
Horn formulas
Set cover
Exercises
Dynamic programmingShortest paths in dags, revisited
Longest increasing subsequences
Edit distance
Knapsack
Chain matrix multiplication
Shortest paths
Independent sets in trees
Exercises
Linear programming and reductionsAn introduction to linear programming
Flows in networks
Bipartite matching
Duality
Zero-sum games
The simplex algorithm
Postscript: circuit evaluation
Exercises
NP-complete problemsSearch problems
NP-complete problems
The reductions
Exercises
Coping with NP-completenessIntelligent exhaustive search
Approximation algorithms
Local search heuristics
Exercises
Quantum algorithmsQubits, superposition, and measurement
The plan
The quantum Fourier transform
Periodicity
Quantum circuits
Factoring as periodicity
The quantum algorithm for factoring
Exercises
Historical notes and further reading