Elementary Algorithms

Six years in the making, this is a free book about elementary algorithms and data structures. This book doesn't only focus on an imperative (or procedural) approach, but also includes purely functional algorithms and data structures.

**Tag(s):**
Algorithms and Data Structures

**Publication date**: 01 Apr 2016

**ISBN-10**:
n/a

**ISBN-13**:
n/a

**Paperback**:
622 pages

**Views**: 4,578

**Type**: Book

**Publisher**:
n/a

**License**:
GNU General Public License Version 3

**Post time**: 21 Oct 2016 12:00:00

Elementary Algorithms

Six years in the making, this is a free book about elementary algorithms and data structures. This book doesn't only focus on an imperative (or procedural) approach, but also includes purely functional algorithms and data structures.

Note:

More resources are available from the book's GitHub page.

Excerpts from the Introduction:

More resources are available from the book's GitHub page.

Excerpts from the Introduction:

Xinyu wrote:Why?

There are plenty of books about algorithms, such as "Introduction to algorithms", "The art of computer programming", "structure and interpretation of computer programs"… why another book? Is it reinvention of wheel?

This book can"t compare with the above classic bibles at all. It has some features like:

- All algorithms are described in math formulas and pseudo codes. I hope it bring some taste of elegant by using algebraic symbols.

- All algorithms are realized in both purely functional and imperative approaches.

- The examples are provided in multiple programming languages, including C, Haskell, Python, C++, Scheme/Lisp. Haskell is the main language for all functional implementations.

Content

The following content are covered in this book (in the order of appearance)

- Binary search tree, insertion sort, red-black tree, AVL tree, Trie, Patricia, suffix tree, B-tree;

- Binary heap, Leftist heap, skew heap, splay heap, selection sort, binomial heap, Fibonacci heap, pairing heap;

- Queue, Finger tree based sequence, quick sort, merge sort, binary search, saddle-back search, KMP, Boyer-Moore, DFS, BFS, Greedy algorithm, Dynamic programming.

Tweet

About The Author(s)

Book Categories

Computer Science
Introduction to Computer Science
Introduction to Computer Programming
Algorithms and Data Structures
Artificial Intelligence
Computer Vision
Machine Learning
Neural Networks
Game Development and Multimedia
Data Communication and Networks
Coding Theory
Computer Security
Information Security
Cryptography
Information Theory
Computer Organization and Architecture
Operating Systems
Image Processing
Parallel Computing
Concurrent Programming
Relational Database
Document-oriented Database
Data Mining
Big Data
Data Science
Digital Libraries
Compiler Design and Construction
Functional Programming
Logic Programming
Object Oriented Programming
Formal Methods
Software Engineering
Agile Software Development
Information Systems
Geographic Information System (GIS)

Mathematics
Mathematics
Algebra
Abstract Algebra
Linear Algebra
Number Theory
Numerical Methods
Precalculus
Calculus
Differential Equations
Category Theory
Proofs
Discrete Mathematics
Theory of Computation
Graph Theory
Real Analysis
Complex Analysis
Probability
Statistics
Game Theory
Queueing Theory
Operations Research
Computer Aided Mathematics

Supporting Fields
Web Design and Development
Mobile App Design and Development
System Administration
Cloud Computing
Electric Circuits
Embedded System
Signal Processing
Integration and Automation
Network Science
Project Management

Operating System
Programming/Scripting
Ada
Assembly
C / C++
Common Lisp
Forth
Java
JavaScript
Lua
Microsoft .NET
Rexx
Perl
PHP
Python
R
Rebol
Ruby
Scheme
Tcl/Tk

Miscellaneous
Sponsors