Curated collection
Algorithms and data structures
Free textbooks and course notes on algorithms, data structures, complexity and the ideas that make programs fast and predictable.
Algorithms are where computer science becomes a discipline rather than a collection of languages. This collection brings together free textbooks and course notes on sorting, searching, graphs, dynamic programming, complexity analysis and the data structures that support them.
Some books are rigorous and proof-heavy; others are practical and code-first. If you are preparing for interviews, pair a general algorithms text with a book that focuses on implementation. If you are following a course, start with the text that matches its syllabus.
The catalog does not rank books by difficulty. Read the description and the publication year, then choose the one that fits your background.
-
01
Notes for the Course of Algorithms
Deal with how to design good algorithms, which is about the mathematical theory behind the design of good programs.
-
02
Data Structures and Algorithms with Object-Oriented Design Patterns in C++
Promotes object-oriented design using C++ and illustrates the use of the emerging object-oriented design patterns.
-
03
Matters Computational: Ideas, Algorithms, Source Code (formerly: Algorithms for Programmers)
Selected algorithms for programmers who are interested in the treated algorithms and actually want to create a working and reasonably optimized code.
-
04
Data Structures & Algorithm Analysis in C++ (Edition 3.2.0.10)
This book provides a thorough and comprehensive treatment of fundamental data structures and the principles of algorithm analysis. Focuses on the principles required to select or design the data structure…
-
05
Algorithms
Contains carefully selected and clustered algorithm topics. No attempt was made to be encyclopedic, so that this book can include topics traditionally de-emphasized or omitted from most Algorithms books.
-
06
Design and Analysis of Algorithms: Course Notes
These notes teach the techniques for the design and analysis of algorithms and data structures. It also study efficient algorithms from areas such as graph theory, networks, scheduling etc.
-
07
Data Structures and Algorithms with Object-Oriented Design Patterns in C#
Promotes object-oriented design using C# and to illustrate the use of the emerging object-oriented design patterns.
-
08
Data Structures and Algorithms With Object-Oriented Design Patterns in Java
Covers the fundamentals of data structures and algorithms -- the basic elements from which large and complex software artifacts are built -- using Java programming language.
-
09
Problems on Algorithms
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.
-
10
Design and Analysis of Computer Algorithms
Focuses on how to design good algorithms, and how to analyze their efficiency.
-
11
Notes for the Course of Data Structures
Focus on the representation and algorithms, the concrete issues of implementation of data structures. Provide the students with the tools needed to design and implement their own data structures.
-
12
Problem Solving with Algorithms and Data Structures using Python
This textbook is designed to serve as a text for a first course on data structures and algorithms, typically taught as the second course in the computer science curriculum.
-
13
Art of Programming Contest – C Programming, Data Structures, and Algorithms, 2nd Edition
A textbook for an algorithm course focusing on programming as well as a programming course focusing on algorithms. The book is designed to train students to participate in competitions, especially…