# Algorithms: Design and Analysis

- Length: 692 pages
- Edition: 1
- Language: English
- Publisher: Oxford University Press
- Publication Date: 2015-12-03
- ISBN-10: 0199456666
- ISBN-13: 9780199456666
- Sales Rank: #2831715 (See Top 100 Books)

Algorithms: Design and Analysis of is a textbook designed for the undergraduate and postgraduate students of computer science engineering, information technology, and computer applications. It helps the students to understand the fundamentals and applications of algorithms. The book has been divided into four sections: Algorithm Basics, Data Structures, Design Techniques and Advanced Topics. The first section explains the importance of algorithms, growth of functions, recursion and analysis of algorithms. The second section covers the data structures basics, trees, graphs, sorting in linear and quadratic time. Section three discusses the various design techniques namely, divide and conquer, greedy approach, dynamic approach, backtracking, branch and bound and randomized algorithms used for solving problems in separate chapters. The fourth section includes the advanced topics such as transform and conquer, decrease and conquer, number thoeretics, string matching, computational geometry, complexity classes, approximation algorithms, and parallel algorithms. Finally, the applications of algorithms in Machine Learning and Computational Biology areas are dealt with in the subsequent chapters. This section will be useful for those interested in advanced courses in algorithms. The book also has 10 appendixes which include topics like probability, matrix operations, Red-black tress, linear programming, DFT, scheduling, a reprise of sorting, searching and amortized analysis and problems based on writing algorithms. The concepts and algorithms in the book are explained with the help of examples which are solved using one or more methods for better understanding. The book includes variety of chapter-end pedagogical features such as point-wise summary, glossary, multiple choice questions with answers, review questions, application-based exercises to help readers test their understanding of the learnt concepts.

### Table of Contents

SECTION I Basic Concepts of Algorithms

Chapter 1 Introduction to Algorithms

Chapter 2 Growth of Functions

Chapter 3 Recursion

Chapter 4 Analysis of Algorithms

SECTION II Data Structures

Chapter 5 Basic Data Structures

Chapter 6 Trees

Chapter 7 Graphs

Chapter 8 Sorting in Linear and Quadratic Time

SECTION III Design Techniques

Chapter 9 Divide and Conquer

Chapter 10 Greedy Algorithms

Chapter 11 Dynamic Programming

Chapter 12 Backtracking

Chapter 13 Branch and Bound

Chapter 14 Randomized Algorithms

SECTION IV Advanced Topics

Chapter 15 Transform and Conquer

Chapter 16 Decrease and Conquer

Chapter 17 Number Theoretic Algorithms

Chapter 18 String Matching

Chapter 19 Complexity Classes

Chapter 20 Introduction to PSpace

Chapter 21 Approximation Algorithms

Chapter 22 Parallel Algorithms

Chapter 23 Introduction to Machine Learning Approaches

Chapter 24 Introduction to Computational Biology and Bioinformatics

Appendix A1 Amortized Analysisâ€“Revisited

Appendix A2 2-3-4 and Redâ€“Black Trees

Appendix A3 Matrix Operations

Appendix A4 Linear Programming

Appendix A5 Complex Numbers and Introduction to DFT

Appendix A6 Probability

Appendix A7 Scheduling

Appendix A8 Searching Reprise

Appendix A9 Analysis of Sorting Algorithms

Appendix A10 Problems