Preface | |
Introduction | |
The notion of algorithm | |
Fundamentals of algorithmic problem solving | |
Important problem types | |
Fundamental data structures | |
Fundamentals of the Analysis of Algorithm Efficiency | |
Analysis framework | |
Asymptotic notations and standard efficiency classes | |
Mathematical analysis of nonrecursive algorithms | |
Mathematical analysis of recursive algorithms | |
Example: Fibonacci numbers | |
Empirical analysis of algorithms | |
Algorithm visualization | |
Brute Force | |
Selection sort and bubble sort | |
Sequential search and brute-force string matching | |
The closest-pair and convex-hull problems by brute force | |
Exhaustive search | |
Divide-and-Conquer | |
Mergesort | |
Quicksort | |
Binary search | |
Binary tree traversals and related properties | |
Multiplication of large integers and Strassen's matrix multiplication | |
Closest-pair and convex-hull problems by divide-and-conquer | |
Decrease-and-Conquer | |
Insertion sort | |
Depth-first search and breadth-first search | |
Topological sorting | |
Algorithms for generating combinatorial objects | |
Decrease-by-a-constant-factor algorithms | |
Variable-size-decrease algorithms | |
Transform-and-conquer | |
Presorting | |
Gaussian elimination | |
Balanced search trees | |
Heaps and heapsort | |
Horner's rule and binary exponentiation | |
Problem reduction | |
Space and Time Tradeoffs | |
Sorting by counting | |
Horspool's and Boyer-Moore algorithms for string matching | |
Hashing | |
B-trees | |
Dynamic Programming | |
Computing a binomial coefficient | |
Shortest-path problems | |
Warshall's and Floyd's algorithms | |
Optimal binary search trees | |
The knapsack problem and memory functions | |
Greedy Technique | |
Prim's algorithm | |
Kruskal's algorithm | |
Dijkstra's algorithm | |
Huffman trees | |
Limitations of Algorithm Power | |
Lower-bound arguments | |
Decision trees | |
P, NP, and NP-complete problems | |
Challenges of numerical algorithms | |
Coping with the Limitations of Algorithm Power | |
Backtracking | |
Branch-and-bound | |
Approximation algorithms for NP-hard problems | |
Algorithms for solving nonlinear equations | |
Epilogue | |
Useful Formulas for the Analysis of Algorithms | |
Short Tutorial on Recurrence Relations | |
Bibliography | |
Hints to Exercises | |
Index | |
Table of Contents provided by Publisher. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.