This book is the result of several decades of teaching experience in data structures and algorithms. It is self-contained but does assume some prior knowledge of data structures, and a grasp of basic programming and mathematics tools. Basic Concepts in Algorithms focuses on more advanced paradigms and methods combining basic programming constructs as building blocks and their usefulness in the derivation of algorithms. Its coverage includes the algorithms' design process and an analysis of their performance. It is primarily intended as a textbook for the teaching of Algorithms for second year undergraduate students in study fields related to computers and programming.Klein reproduces his oral teaching style in writing, with one topic leading to another, related one. Most of the classical and some more advanced subjects in the theory of algorithms are covered, though not in a comprehensive manner. The topics include Divide and Conquer, Dynamic Programming, Graph algorithms, probabilistic algorithms, data compression, numerical algorithms and intractability. Each chapter comes with its own set of exercises, and solutions to most of them are appended.
Contents:
-
List of Background Concepts
-
List of Algorithms
-
Preface
-
Recursion:
- Divide and Conquer
- Dynamic Programming
-
Graph Algorithms:
- Minimum Spanning Trees
- Shortest Paths
-
Probabilistic Algorithms:
-
Text Algorithms:
- Data Compression
- Pattern Matching
-
Numerical Algorithms:
- Fast Fourier Transform
- Cryptography
-
Intractability:
- NP Completeness
- Approximations
-
Solutions to Selected Exercises
-
References
-
Index
Readership: Advanced undergraduate; 2nd year of Computer Science, engineering, data science. The book is intended for a broad audience acquainting the reader with the theoretical sides of computer programming, for students studying computer related fields.
Key Features:
- Easy to read, compact, yet covering many important topics in the theory of algorithms
- Based on many years of teaching experience with thousands of students