Skip to content
A collection of javascript algorithms, patterns, and techniques
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Made quicksort check for 'initial' parameter that is true by default,… Apr 14, 2019
test Removing x before test block Apr 14, 2019
.eslintrc.json Add husky hooks Apr 12, 2019
.gitignore Add codecov Apr 12, 2019
.travis.yml Add travis ci Apr 12, 2019 Add Contributing section to README Apr 14, 2019
package-lock.json Add husky hooks Apr 12, 2019

JavaScript Algorithms, Design Patterns, and Techniques

Build Status Codecov Status

This repository contains common algorithms, design patters, and techniques implemented in JavaScript. Code here is best used for learning purposes and practice. Contributing to this repo is appreciated and requested, especially if you're trying to learn JavaScript!

Note: Code from this repository should not be used in production! There are likely much more robust and well-tested built-in methods or npm packages to accomplish any task



  • Sorting
    • Merge Sort
    • Quick Sort
    • TODO: Bucket Sort
    • TODO: Heap Sort
    • TODO: Counting Sort
  • Searching


  • Observer (Tests needed)
  • Revealing Module (Tests needed)
  • Singleton (Tests needed)


  • Memoize (Tests needed)


Contributing to this repository is appreciated and requested! Please look at the list above and select a section that has TODO next to it, or one that needs testing. In the former case, please add both the content of that section as well as matching tests in the tests directory. Please Check the open issues before working on anything to make sure someone else isn't working on it already. If it looks available, open a new issue detailing what you plan to work on and I will verify no one else is working on it. Thank you!

You can’t perform that action at this time.