JeffreyFortman / javascript-patterns

A collection of javascript algorithms, patterns, and techniques

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

Contents

Algorithms

  • Sorting

    • Merge Sort
    • Quick Sort
    • TODO: Bucket Sort
    • Heap Sort
    • Counting Sort
    • Bubble Sort
    • Selection Sort
    • Insertion Sort
  • Searching

    • TODO: Linear Search
    • Binary Search
    • TODO: Jump Search
    • TODO: Interpolation Search
    • TODO: Exponential Search
    • TODO: Sublist Search (Search a linked list in another list)
    • TODO: Fibonacci Search
    • TODO: The Ubiquitous Binary Search

Patterns

  • Observer
  • Revealing Module (Tests needed)
  • Singleton
  • Builder
  • TODO: Factory
  • TODO: Adapter
  • TODO: Bridge
  • TODO: Decorator
  • TODO: Flyweight
  • TODO: Proxy
  • TODO: Builder

Techniques

  • Memoize (Tests needed)

Contributing

Please make sure to claim an algorithm on the issues list (either by claiming an existing one or creating a new issue if the algo isn't listed). This helps make sure multiple people aren't doing the same work!

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!

About

A collection of javascript algorithms, patterns, and techniques

License:MIT License


Languages

Language:JavaScript 100.0%