Introduction To Algorithms
MIT Press, 2001 - Computers - 1180 pages
The first edition won the award for Best 1990 Professional and Scholarly Book in Computer Science and Data Processing by the Association of American Publishers.
There are books on algorithms that are rigorous but incomplete and others that cover masses of material but lack rigor. Introduction to Algorithms combines rigor and comprehensiveness.
The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor.
The first edition became the standard reference for professionals and a widely used text in universities worldwide. The second edition features new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming, as well as extensive revisions to virtually every section of the book. In a subtle but important change, loop invariants are introduced early and used throughout the text to prove algorithm correctness. Without changing the mathematical and analytic focus, the authors have moved much of the mathematical foundations material from Part I to an appendix and have included additional motivational material at the beginning.
What people are saying - Write a review
Getting Started 75
Growth of Functions
Probabilistic Analysis and Randomized Algorithms
Augmenting Data Structures
Minimum Spanning Trees
SingleSource Shortest Paths
Polynomials and the FFT 522
Other editions - View all
amortized cost analysis array assume asymptotic B-tree binary search tree binomial heap bitonic Chapter compute constant constraints contains Corollary data structure define deletion denote depth-first search determine directed graph edge element equation example Exercise feasible solution Fibonacci heap Figure flow network given graph G greedy hash function hash table implement input insertion sort integer iteration Lemma linear program linked list loop invariant loop of lines matrix maximum flow merge sort method minimum spanning tree modulo multiplication negative-weight cycle node nonnegative NP-complete objective value operations optimal solution output partition performed permutation pointer points polynomial polynomial-time problem procedure Proof prove pseudocode queue quicksort random recursive call red-black tree relabel root list Section segments sequence shortest path simplex slack form slot solve sorting network stack subarray subproblems subset subtree Suppose Theorem variables vector vertex vertices weight worst-case running