FreeComputerBooks.com
Free Computer, Mathematics, Technical Books and Lecture Notes, etc.


Think Data Structures: Algorithms and Information Retrieval
This practical book will help you learn and review some of the most important ideas in software engineering  data structures and algorithms  in a way that's clearer, more concise, and more engaging than other materials. Useful in technical interviews too.

Essential Algorithms (Krzysztof Kowalczyk)
This book provides clear and concise explanation of topics for programmers both starting to learn the Algorithms as well as those diving in more complex topics. Examples are linked to online playground that allows you to play with them.

Algorithms and Data Structures: The Basic Toolbox (Kurt Mehlhorn)
This book is a concise introduction addressed to students and professionals familiar with programming and basic mathematical language. The algorithms are presented in a modern way, with explicitly formulated invariants, and comment on recent trends.

Purely Functional Data Structures (Chris Okasaki)
This book describes data structures from the point of view of functional languages, with examples, and presents design techniques that allow programmers to develop their own functional data structures. All source code is given in Standard ML and Haskell.

Algorithms and Data Structures (Niklaus Wirth)
From the inventor of Pascal and Modula2 comes a new version of Niklaus Wirth's classic work, Algorithms + Data Structure = Programs (PH, l975). It includes new material on sequential structure, searching and priority search trees.

Graph Algorithms: Practical Examples in Apache Spark and Neo4j
This book is a practical guide to getting started with graph algorithms for developers and data scientists who have experience using Apache Spark or Neo4j. You'll walk through handson examples that show you how to use graph algorithms in Apache Spark/Neo4j.

Parallel Algorithms (Henri Casanova, et al)
Focusing on algorithms for distributedmemory parallel architectures, the book extracts fundamental ideas and algorithmic principles from the mass of parallel algorithm expertise and practical implementations developed over the last few decades.

The Design of Approximation Algorithms (D. P. Williamson)
This book shows how to design approximation algorithms: efficient algorithms that find provably nearoptimal solutions. is organized around central algorithmic techniques for designing approximation algorithms, including greedy and local search algorithms, dynamic programming, linear and semidefinite programming, and randomization.

Algorithms, 4th Edition, by Robert Sedgewick and Kevin Wayne
It surveys the most important algorithms and data structures in use today. Applications to science, engineering, and industry are a key feature of the book. We motivate each algorithm that we address by examining its impact on specific applications.

Elementary Algorithms (Xinyu Liu)
This book doesn't only focus on an imperative (or procedural) approach, but also includes purely functional algorithms and data structures. The examples are in multiple programming languages: Haskell, C, Python, C++, Scheme/Lisp.

Lecture Notes for the Algorithms (Jeff Erickson)
This lecture notes uniquely combines rigor and comprehensiveness. It covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively selfcontained and can be used as a unit of study.

The Algorithm Design Manual (Steven S. Skiena)
This book serves as the primary textbook for any algorithm design course while maintaining its status as the premier practical reference guide to algorithms, intended as a manual on algorithm design for both students and computer professionals.

Introduction to Design Analysis of Algorithms (K. Raghava Rao)
This book was very useful to easily understand the algorithms. This book is having enough examples on every algorithm. It has written for the sake of students to provide complete knowledge on Algorithms.

Algorithms: Fundamental Techniques (Macneil Shonle, et al)
The goal of the book is to show you how you can methodically apply different techniques to your own algorithms to make them more efficient. While this book mostly highlights general techniques, some wellknown algorithms are also looked at in depth.

Numerical Algorithms: Computer Vision, Machine Learning, etc.
This book presents a new approach to numerical analysis for modern computer scientists, covers a wide range of topics  from numerical linear algebra to optimization and differential equations  focusing on realworld motivation and unifying themes.

Algorithms for Reinforcement Learning (Csaba Szepesvari)
This book focuses on those algorithms of reinforcement learning that build on the powerful theory of dynamic programming. It gives a fairly comprehensive catalog of learning problems, describe the core ideas, note a large number of state of the art algorithms, followed by the discussion of their theoretical properties and limitations.

Optimization Algorithms Methods and Applications
This book covers stateoftheart optimization methods and their applications in wide range especially for researchers and practitioners who wish to improve their knowledge in this field.

Algorithms and Data Structures: Apps to Graphics and Geometry
An introductory coverage of algorithms and data structures with application to graphics and geometry. Sample exercises, many with solutions, are included throughout the book.

Notes on Data Structures and Programming Techniques
There are two purposes to this book: to teach you to program in the C programming language, and to teach you how to choose, implement, and use data structures and standard programming techniques.

Algorithmic Problem Solving with Python (John B. Schneider)
This book uses Python to introduce folks to programming and algorithmic thinking. It is sharply focused on classical algorithms, but it also gives a solid understanding of fundamental algorithmic problemsolving techniques.

Ruby Data Structures and Algorithms (Christopher Fox)
This book is a concise introduction to data structures and algorithms in Ruby. Data structures are presented in a container hierarchy that includes stacks and queues as nontraversable dispensers, and lists, sets, and maps as traversable collections.

Data Structures and Algorithm Analysis in C++, 3rd Edition
A comprehensive treatment focusing on the creation of efficient data structures and algorithms, using C++.

Data Structures and Algorithm Analysis in Java, 3rd Edition
A comprehensive treatment focusing on the creation of efficient data structures and algorithms, using Java.

Java Structures: Data Structures in Java for the Programmers
This book attempts to provide a fresh and focused approach to the design and implementation of classic structures in a manner that meshes well with existing Java packages.

Clever Algorithms: NatureInspired Programming Recipes
The book describes 45 algorithms from the field of Artificial Intelligence. All algorithm descriptions are complete and consistent to ensure that they are accessible, usable and understandable by a wide audience.

Go Data Structures and Algorithms (Christopher Fox)
A concise introduction to data structures and algorithms in Go. Data structures are presented in a container hierarchy that includes stacks and queues as nontraversable dispensers, and lists, sets, and maps as traversable collections.

AI Algorithms, Data Structures, and Idioms in Prolog, Lisp, and Java
Illustrateing how to program AI algorithms in Lisp, Prolog, and Java. Topics include: simple productionlike system based on logic, logicbased learning, and natural language parsing.

Advances in Graph Algorithms (Ton Kloks, YueLi Wang)
This is a book about some currently popular topics such as exponential algorithms, fixedparameter algorithms and algorithms using decomposition trees of graphs which is one of focuses of the book  occupied a whole chapter.

Fundamental Data Structures (Wikibooks)
This book describes data structures from the point of view of programming, with examples, and presents design techniques that allow programmers to develop their own data structures.

Open Data Structures: An Introduction, in Java and C++ (Pat Morin)
This book is an introduction to the field of data structures and algorithms, it covers the implementation and analysis of data structures for sequences (lists), queues, priority queues, unordered dictionaries, ordered dictionaries, and graphs.

Algorithms (Sanjoy Dasgupta, Christos Papadimitriou, et al)
This book, extensively classtested over a decade at UC Berkeley and UC San Diego, explains the fundamentals of algorithms in a story line that makes the material enjoyable and easy to digest.

Solving NPComplete Problems (Forbes D. Lewis)
This is a textbook on heuristic algorithms. From the table of contents: Classes of Problems; Integer Programming; Enumeration Techniques; Dynamic Programming; Approximate Solutions; Local Optimization; Natural Models.

An Introduction to the Analysis of Algorithms, 2nd Edition
The authors have drawn from both classical mathematics and computer science, integrating discrete mathematics, elementary real analysis, combinatorics, algorithms, and data structures.

Algorithms in Real Algebraic Geometry (Saugata Basu, et al)
The monograph gives a selfcontained detailed exposition of the algorithmic real algebraic geometry. It will be useful both for beginners and for advanced readers, who work in real algebraic geometry or apply its methods in other fields.

Search Algorithms for Engineering Optimization
This book explores a variety of applications for search methods and techniques in different fields of electrical engineering. By organizing relevant results and apps.

Data Structures Succinctly, Part 1 (Robert Horvick)
This is your first step to a better understanding of the different types of data structures, how they behave, and how to interact with them.

Data Structures Succinctly, Part 2 (Robert Horvick)
This is your second step to a better understanding of the different types of data structures, focus on lists, hash tables, heaps, priority queues, AVL trees, and Btrees.

Genetic Algorithms in Applications (Rustem Popa)
This wellorganized book takes the reader through the new and rapidly expanding field of genetic algorithms step by step, from a discussion of numerical optimization, to a survey of current extensions to genetic algorithms and applications.

Problem Solving with Algorithms and Data Structures Using Python
This is a textbook about computer science. It is also about Python. However, there is much more. The tools and techniques that you learn here will be applied over and over as you continue your study of computer science.

Digraphs: Theory, Algorithms and Applications (BangJensen)
This book is an essential, comprehensive reference of Digraphs for students, and researchers in mathematics, operations research and computer science.

Lists, Decisions and Graphs  With an Introduction to Probability
In this book, four basic areas of discrete mathematics are presented: Counting and Listing (Unit CL), Functions (Unit Fn), Decision Trees and Recursion (Unit DT), and Basic Concepts in Graph Theory (Unit GT).

RealWorld Applications of Genetic Algorithms (Olympia Roeva)
This book presents hybrid techniques based on Artificial Neural Network, Fuzzy Sets, Automata Theory, other metaheuristic or classical algorithms, etc. It examines various examples of algorithms in different realworld application domains.

BioInspired Computational Algorithms and Their Applications
Integrates contrasting techniques of genetic algorithms, artificial immune systems, particle swarm optimization, and hybrid models to solve many realworld problems.

Algorithmic Graph Theory (David Joyner, et al)
This is an introductory book on algorithmic graph theory. Theory and algorithms are illustrated using the Sage open source mathematics software. It's especially suitable for computer scientists and mathematicians interested in computational complexity.

Essentials of Metaheuristics (Sean Luke)
This book is an open set of lecture notes on metaheuristics algorithms, intended for undergraduate students, practitioners, programmers, and other nonexperts.

Search Algorithms and Applications (Nashat Mansour)
Demonstrates the wide applicability of search algorithms for the purpose of developing useful and practical solutions to problems that arise in a variety of problem domains.

Evolutionary Algorithms (Eisuke Kita)
The goal of this book is to provide effective evolutionary algorithms that have been used as an experimental framework within biological evolution and natural selection in the field of artificial life.

Algorithms for Modular Elliptic Curves, 2nd Edition (J. E. Cremona)
This book presents a thorough treatment of many algorithms concerning the arithmetic of elliptic curves, with remarks on computer implementation. An extensive set of tables is provided giving the results of the author's implementation of the algorithms.

Matters Computational: Ideas, Algorithms, Source Code
This book provides algorithms and ideas for computationalists, whether a working programmer or anyone interested in methods of computation. The implementations are done in C++ and the GP language, written for POSIXcompliant platforms.

Fast Fourier Transforms (C. Sidney Burrus)
This book uses an index map, a polynomial decomposition, an operator factorization, and a conversion to a filter to develop a very general and efficient description of fast algorithms to calculate the discrete Fourier transform (DFT).

Global Optimization Algorithms  Theory and Application. 2nd Edition
This book is devoted to global optimization algorithms, which are methods to find optimal solutions for given problems.

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

Traveling Salesman Problem, Theory and Applications
This book is a collection of current research in the application of evolutionary algorithms and other optimal algorithms to solving the TSP problem.

Greedy Algorithms (Witold Bednorz)
This book covers fundamental, theoretical topics as well as advanced, practical applications of Greedy Algorithms.

The Art of Computer Programming, Vol. 4 (Donald E. Knuth)
This is by far the longest chapter in The Art of Computer Programming, a chapter on combinatorial algorithms that will itself fill four fullsized volumes.

The Art of Computer Programming, Volumn 1, Fascicle 1: MMIX  A RISC Computer (Donald E. Knuth)
This first fascicle updates The Art of Computer Programming, Vol 1, 3rd Edition: Fundamental Algorithms, and ultimately will become part of the 4th edition of that book.

Optimization Algorithms on Matrix Manifolds (P.A. Absil, ...)
This book offers techniques with broad applications in linear algebra, signal processing, data mining, computer vision, and statistical analysis.

Advances in Evolutionary Algorithms (Witold Kosinski)
Provide effective optimization algorithms for solving a broad class of problems quickly, accurately, and reliably by employing evolutionary mechanisms.

Boosting: Foundations and Algorithms (Robert E. Schapire, et al)
This book, written by the inventors of the Boosting method, brings together, organizes, simplifies, and substantially extends two decades of research on boosting, presenting both theory and applications in a way that is accessible to readers from diverse backgrounds.

Data Structures and Algorithms: Reference with Examples
A key factor of this book and its associated implementations is that all algorithms were designed by authors, using the theory of the algorithm in question as a guideline. It covers the key ideas involved in designing algorithms.

Tabu Search (Wassim Jaziri)
The goal of this book is to report original researches on algorithms and applications of Tabu Search to realworld problems.

Algorithmic Game Theory (Noam Nisan, et al)
This book covers many of the hottest area of useful new game theory research, introducing deep new problems, techniques, etc.

Multiagent Systems: Algorithmic, GameTheoretic, and Logic, etc.
This comprehensive introduction to a burgeoning field is written from a computer science perspective, while bringing together ideas from operations research, game theory, economics, logic, and even philosophy and linguistics.

Planning Algorithms (Steven M. LaValle)
This is the only book for teaching and referencing of Planning Algorithms in applications including robotics, computational biology, computer graphics, manufacturing, aerospace applications and medicine, etc.

Combinatorial Algorithms for Computers and Calculators
On one level, this is a collection of subroutines, in FORTRAN, for the solution of combinatorial problems.

Information Theory, Inference and Learning Algorithms
This textbook introduces Information theory in tandem with applications, alongside practical communication systems, such as arithmetic coding for data compression and sparsegraph codes for errorcorrection.

Algorithms and Complexity (Herbert S. Wilf)
This is an introductory book on the design and analysis of algorithms. The author uses a careful selection of a few topics to illustrate the tools for algorithm analysis.

Problems on Algorithms, 2nd Edition (Ian Parberry)
This book provides an extensive and varied collection of useful, practical problems on the design, analysis, and verification of algorithms.

Algorithms and Data Structures in VLSI Design
This book presents broad and indepth coverage of the entire field of modern VLSI Design with ordered binary decision diagrams (OBDDs).

Problem Solving for Coding Interviews (Karthik Naidu)
This book is a software engineer's notes on problem solving. Ideally suited as practice material for coding interviews. This started out as a collection of interview questions and solutions that suthor accumulated over the years.

Average Case Analysis of Algorithms on Sequences (Szpankowski)
It describes methods employed in average case analysis of algorithms, combining both analytical and probabilistic tools in a single volume.

Text Algorithms (Maxime Crochemore and Wojciech Rytter)
It is the first book that systematically presents the results of work on practical and theoretical algorithmic problems on texts up to the most recent developments in stringology.

Sequential and Parallel Sorting Algorithms (Hans Werner Lang)
Varieties of sequential and parallel sorting algorithms are explained, followed by source code (in Java and C++). Descriptions are brief and intuitive, with just enough theory thrown in to make you nervous.

Knapsack Problems: Algorithms and Computer Implementations
The text fully develops an algorithmic approach to Knapsack Problems without losing mathematical rigor.

Discrete Mathematics with Algorithms (M. O. Albertson, et al)
This is a firstyear course in discrete mathematics requireing no calculus or computer programming experience.

Art Gallery Theorems and Algorithms (Joseph O'Rourke)
This book is the most comprehensive collection of results on polygons currently available and thus earns its place as a standard text in discrete and computational geometry. It is very well written and a pleasure to read.

Data Structures and Algorithms with OPP Design Patterns in Java
It promotes objectoriented design using Java and illustrates the use of the latest objectoriented design patterns. Virtually all the data structures are discussed in the context of a single class hierarchy.

Data Structures and Algorithms with OPP Design Patterns in C++
This book presents readers with a modern, objectoriented perspective for looking at data structures and algorithms using C++, clearly showing how to use polymorphism and inheritance, and including fragments from working and tested programs.

Data Structures and Algorithms with OPP Design Patterns in C#
It promotes objectoriented design using C# and illustrates the use of the latest objectoriented design patterns. Virtually all the data structures are discussed in the context of a single class hierarchy.

Data Structures and Algorithms with OPP Design Patterns in Ruby
It promotes objectoriented design using Ruby and illustrates the use of the latest objectoriented design patterns. Virtually all the data structures are discussed in the context of a single class hierarchy.

Data Structures and Algorithms with OPP Design Patterns in Python
It promotes objectoriented design using Python and illustrates the use of the latest objectoriented design patterns. Virtually all the data structures are discussed in the context of a single class hierarchy.

Data Science Algorithms in a Week: Top 7 Algorithms
This book will address the problems related to accurate and efficient data classification and prediction. Over the course of 7 days, you will be introduced to seven algorithms, along with exercises that will help you learn different aspects of machine learning.

Algorithms and Data Structures
This is the previous page of Algorithms and Data Structures, we are in the processing to convert all the books there to the new page. Please check this page daily!!!




















