The leading introduction to computer algorithms in use today, including fifty algorithms every programmer should know
Princeton Computer Science professors, Robert Sedgewick and Kevin Wayne, survey the most important computer algorithms in use and of interest to anyone working in science, mathematics, and engineering, and those who use computation in the liberal arts. They provide a full treatment of data structures and algorithms for key areas that enable you to confidently implement, debug, and put them to work in any computational environment.
Fundamentals:
Basic programming models
Data abstraction
Bags, queues, and stacks
Analysis of algorithms
Sorting
Elementary sorts
Mergesort
Quicksort
Priority queues
Applications
Graphs
Undirected graphs
Directed graphs
Minimum spanning trees
Shortest paths
Strings
String sorts
Tries
Substring search
Regular expressions
Data compression
These algorithms are generally ingenious creations that, remarkably, can each be expressed in just a dozen or two lines of code. As a group, they represent problem-solving power of amazing scope. They have enabled the construction of computational artifacts, the solution of scientific problems, and the development of commercial applications that would not have been feasible without them.