# Algorithms and Data Structures Books, Documents, and Lectures

Title | Year | Description |

Algorithmic Problem Solving | 2006 | An introduction to algorithms using an example-driven approach |

Algorithms | 2006 | This book evolved over the past ten years from a set of lecture notes developed by the authors while teaching the undergraduate Algorithms course at Berkeley and U.C. San Diego. Includes topics traditionally de-emphasized or omitted from most books. |

Algorithms Course Materials | 2009 | Lecture notes for the algorithms classes required for all computer science undergraduate and graduate students at the University of Illinois |

Algorithms and Complexity | 1994 | This book is about algorithms and complexity, and so it is about methods for solving problems on computers and the costs (usually the running time) of using those methods. |

Algorithms and Data Structures - The Basic Toolbox | 2016 | A concise introduction to the basic algorithmic toolbox addressed to students and professionals familiar with programming and basic mathematical lang. |

Algorithms for Programmers | 2009 | A nice collection of algorithms in a compact and no-nonsense style with reasonably optimized working code and pseudo-code |

Algorithms in the Real World: Lecture Notes | 1997 | Lecture notes taken by the students in the course Algorithms in the Real World taught at UC Berkeley during the Fall semester, 1997 |

Algorithms, Etc. | 2015 | These are lecture notes that I wrote for various algorithms classes at the University of Illinois at Urbana-Champaign |

Approximation Algorithms | 1997 | This book deals with designing polynomial time approximation algorithms for NP-hard optimization problems. |

Art Gallery Theorems and Algorithms | 1987 | Explores generalizations and specializations in the geometrical shapes and internal surfaces of art |

Art of Programming Contest | 2006 | This book is designed to serve as a textbook for an algorithm course focusing on programming as well as a programming course focusing on algorithms |

Average Case Analysis of Algorithms on Sequences | 2001 | A timely book on a topic that has witnessed a surge of interest over the last decade, owing in part to several novel applications, most notably in data compression and computational molecular biology |

Complexity Theory | 1999 | Notes for an introductory graduate course on complexity theory. |

Computation Complexity | 1999 | This book focuses on the need to be able to measure the complexity of a problem, algorithm or structure, and to obtain bounds and quantitive relations for complexity. |

Computational Modeling and Complexity Science | 2008 | This book is about data structures and algorithms, intermediate programming in Python, complexity science and the philosophy of science |

Data Structures and Algorithms with Object-Oriented Design Patterns in C# | 2001 | This book presents the various data structures and algorithms as complete C# program fragments. |

Data Structures and Algorithms with Object-Oriented Design Patterns in C++ | 1999 | This book presents the various data structures and algorithms as complete C++ program fragments. |

Data Structures and Algorithms with Object-Oriented Design Patterns in Java | 1999 | This book presents the various data structures and algorithms as complete Java program fragments. |

Design and Analysis of Algorithms: Course Notes | 2003 | This is a compilation of lecture notes, used by the author to teach CMSC 651: Design and Analysis of Algorithms at Dept. of Computer Science, University of Maryland |

Design and Analysis of Computer Algorithms | Lecture notes on a course focusing the design of good, efficient algorithms | |

Designing and Building Parallel Programs | 1995 | Designing and Building Parallel Programs is a book for students and professionals who need to know how to write parallel programs. |

Efficient Algorithms for Sorting and Synchronization | 1999 | Presents efficient algorithms for internal and external parallel sorting and remote data update. |

Foundations of Computer Science | 2000 | Lecture notes for the Foundations of Computer Science course at the Computer Laboratory, University of Cambridge. |

GNU libavl | 2006 | Provides an introduction to binary tree techniques using GNU libavl, a library in ANSI C for manipulation of various types of binary trees. |

Introduction to Complexity Theory | 2001 | A course aimed at exposing the students to the basic results and research directions of Complexity Theory. |

Numerical Recipes in C | 1992 | This book aims to teach the reader methods of numerical computing that are practical, efficient, and elegant. The authors presume that the reader has particular tasks that he needs to accomplish, and they aim to educate the reader how to proceed. |

Problems on Algorithms | 2002 | A collection of problems on the design, analysis, and verification of algorithms for use by practicing programmers who wish to hone and expand their skills. |