Communication network design, VLSI layout and DNA sequence analysis are important and challenging problems that cannot be solved by naive and straightforward algorithms. Thus, it is critical for a computer scientist to have a good knowledge of algorithm design and analysis.
This book presents algorithm design from the viewpoint of strategies. Each strategy is introduced with many algorithms designed under the strategy. Each algorithm is presented with many examples and each example with many figures.
In recent years, many approximation algorithms have been developed. Introduction to the Design and Analysis of Algorithms presents two important concepts clearly: PTAS and NPO-complete. This book also discusses the concept of NP-completeness before introducing approximation algorithms. Again, this is explained through examples which make sure that the students have a definite idea about this very abstract concept.
In addition, this book also has a chapter on on-line algorithms. Each on-line algorithm is introduced by first describing the basic principle behind it. Amortized analysis is a new field in algorithm research. In this book, detailed descriptions are given to introduce this new and difficult-to-understand concept.
This book can be used as a textbook by senior undergraduate students or master level graduate students in computer science.
Table of Contents
2 The complexity of algorithms and the lower bounds of problems
3 The greedy method
4 The divide-and-conquer strategy
5 Tree searching strategies
7 Dynamic programming
8 The theory of NP-completeness
9 Approximation algorithms
10 Amortized analysis
11 Randomized algorithms
12 On-line algorithms