This book, on Design and Analysis of Algorithms, in its second edition, presents a detailed coverage of the time complexity of algorithms. In this edition, a number of chapters have been modified and updated with new material. It discusses the various design factors that make one algorithm more efficient than others, and explains how to devise the new algorithms or modify the existing ones.
The book begins with an introduction to algorithm analysis and then presents different methods and techniques—divide and conquer methods, the greedy method, search and traversal techniques, backtracking methods, branch and bound methods—used in the design of algorithms. Each algorithm that is written in this book is followed first by a detailed explanation and then is supported by worked-out examples. The book contains a number of figures to illustrate the theoretical aspects and also provides chapter-end questions to enable students to gauge their understanding of the underlying concepts. What distinguishes the text is its compactness, which has been achieved without sacrificing essential subject matter.
This text is suitable for a course on “Design and Analysis of Algorithms”, which is offered to the students of B.Tech (Computer Science and Engineering) and undergraduate and postgraduate students of computer science and computer applications [BCA, MCA, B.Sc. (CS), M.Sc. (CS)] and other computer-related courses.
New to this Edition :
Explains in detail the time complexity of the algorithms for the problem of finding the GCD and matrix addition.
Covers the analysis of Knapsack and Combinatorial Search and Optimization problems.
Illustrates the “Branch-and-Bound” method with reference to the Knapsack problem.
Presents the theory of NP-Completeness.