Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lansana/grokking-algorithms

Examples (in different programming languages) of the algorithms from the book "Grokking Algorithms".
https://github.com/lansana/grokking-algorithms

Last synced: 3 days ago
JSON representation

Examples (in different programming languages) of the algorithms from the book "Grokking Algorithms".

Awesome Lists containing this project

README

        

# Grokking Algorithms

This repository contains the algorithms (in various languages) from each of the chapters in the amazing [Grokking Algorithms](https://www.manning.com/bhargava) book.

I created this repository as a learning experience for myself, and in hopes that it may be useful to others.

## Chapters

Below is the index of the algorithms (in various languages) used in each chapter of the book.

#### Chapter 1: Introduction to Algorithms

- [Go](https://github.com/LansanaCamara/grokking-algorithms/blob/master/1-introduction-to-algorithms/go/binary-search.go)
- [JavaScript](https://github.com/LansanaCamara/grokking-algorithms/blob/master/1-introduction-to-algorithms/javascript/binary-search.js)
- [PHP](https://github.com/LansanaCamara/grokking-algorithms/blob/master/1-introduction-to-algorithms/php/binary-search.php)

#### Chapter 2: Selection Sort

- [Go](https://github.com/LansanaCamara/grokking-algorithms/blob/master/2-selection-sort/go/selection-sort.go)
- [JavaScript](https://github.com/LansanaCamara/grokking-algorithms/blob/master/2-selection-sort/javascript/selection-sort.js)
- [PHP](https://github.com/LansanaCamara/grokking-algorithms/blob/master/2-selection-sort/php/selection-sort.php)

#### Chapter 3: Recursion

- [Go](https://github.com/LansanaCamara/grokking-algorithms/blob/master/3-recursion/go/recursion.go)
- [JavaScript](https://github.com/LansanaCamara/grokking-algorithms/blob/master/3-recursion/javascript/recursion.js)
- [PHP](https://github.com/LansanaCamara/grokking-algorithms/blob/master/3-recursion/php/recursion.php)

#### Chapter 4: Quicksort

- JavaScript
- [Swapping in place/partitioning](https://github.com/LansanaCamara/grokking-algorithms/blob/master/4-quicksort/javascript/quicksort1.js)
- [Creating new arrays](https://github.com/LansanaCamara/grokking-algorithms/blob/master/4-quicksort/javascript/quicksort2.js)
- [Haskell](https://github.com/LansanaCamara/grokking-algorithms/blob/master/4-quicksort/haskell/quicksort.hs)

#### Chapter 5: Hash Tables

- [JavaScript](https://github.com/LansanaCamara/grokking-algorithms/blob/master/5-hash-tables/javascript/hash-tables.js)
- [PHP](https://github.com/LansanaCamara/grokking-algorithms/blob/master/5-hash-tables/php/hash-tables.php)

#### Chapter 6: Breadth-first Search

- [JavaScript](https://github.com/LansanaCamara/grokking-algorithms/blob/master/6-breadth-first-search/javascript/breadth-first-search.js)
- [PHP](https://github.com/LansanaCamara/grokking-algorithms/blob/master/6-breadth-first-search/php/breadth-first-search.php)

## More Algorithms

The `/extras` directory consists of the following examples in multiple languages:

1. Combining two or more algorithms
2. Algorithms that weren't touched on in the book

#### Recursive Binary Search

- [Go](https://github.com/LansanaCamara/grokking-algorithms/blob/master/extras/recursive-binary-search/go/recursive-binary-search.go)
- [JavaScript](https://github.com/LansanaCamara/grokking-algorithms/blob/master/extras/recursive-binary-search/javascript/recursive-binary-search.js)
- [PHP](https://github.com/LansanaCamara/grokking-algorithms/blob/master/extras/recursive-binary-search/php/recursive-binary-search.php)

## Contributing

Feel free to make pull requests for code improvements, new languages, etc.