Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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".
- Host: GitHub
- URL: https://github.com/lansana/grokking-algorithms
- Owner: lansana
- Created: 2016-08-14T01:56:18.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-09-05T21:33:33.000Z (about 8 years ago)
- Last Synced: 2024-08-02T05:09:06.436Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 24.4 KB
- Stars: 21
- Watchers: 5
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.