Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/make-github-pseudonymous-again/js-algorithms

:rocket: Algorithms for JavaScript
https://github.com/make-github-pseudonymous-again/js-algorithms

agpl algorithm algorithms computer-science javascript js searching sorting

Last synced: 2 months ago
JSON representation

:rocket: Algorithms for JavaScript

Awesome Lists containing this project

README

        

:rocket: [Algorithms](https://github.com/make-github-pseudonymous-again/js-algorithms#readme)
[![License](https://img.shields.io/github/license/make-github-pseudonymous-again/js-algorithms.svg?style=flat)](https://raw.githubusercontent.com/make-github-pseudonymous-again/js-algorithms/main/LICENSE)
[![GitHub issues](https://img.shields.io/github/issues/make-github-pseudonymous-again/js-algorithms.svg?style=flat)](https://github.com/make-github-pseudonymous-again/js-algorithms/issues)
==






© xkcd.com

Playground for algorithms in JavaScript.
This is a child project of [js-library](https://github.com/make-github-pseudonymous-again/js-library)
and
the twin project of [js-data-structures](https://github.com/make-github-pseudonymous-again/js-data-structures).

## :newspaper: Description

This project is just a playground for any algorithm that doesn't fit in any
of those projects,

### :flashlight: Searching
- [@aureooms/js-search](https://github.com/make-github-pseudonymous-again/js-search):
Searching algorithms for JavaScript

### :waning_gibbous_moon: Merging

- [aureooms/js-merging](https://github.com/make-github-pseudonymous-again/js-merging): merging for JavaScript

### :cake: Partitioning
- [@aureooms/js-partition](https://github.com/make-github-pseudonymous-again/js-partition):
Partitioning algorithms for JavaScript
- [@aureooms/js-splitting](https://github.com/make-github-pseudonymous-again/js-splitting):
Array splitting algorithms for JavaScript

### :point_down: Selection
- [aureooms/js-selection](https://github.com/make-github-pseudonymous-again/js-selection): selection for JavaScript

### :signal_strength: Sorting
- [@aureooms/js-sort](https://github.com/make-github-pseudonymous-again/js-sort):
Sorting algorithms for JavaScript

#### :balance_scale: Comparison sorting

- :notebook_with_decorative_cover: [@comparison-sorting/specification](https://github.com/comparison-sorting/specification): Comparison sorting specification for JavaScript
- :leaves: [@comparison-sorting/heap-sort](https://github.com/comparison-sorting/heap-sort): Heapsort for JavaScript
- :rabbit2: [@comparison-sorting/quick-sort](https://github.com/comparison-sorting/quick-sort): Quicksort for JavaScript
- :rewind: [@comparison-sorting/insertion-sort](https://github.com/comparison-sorting/insertion-sort): Insertion sorting algorithms for JavaScript
- :person_fencing: [@comparison-sorting/merge-insertion-sort](https://github.com/comparison-sorting/merge-insertion-sort): Ford-Johnson algorithm for JavaScript
- :dragon: [@comparison-sorting/merge-sort](https://github.com/comparison-sorting/merge-sort): Mergesort for JavaScript
- :musical_score: [@comparison-sorting/odd-even-merge-sort](https://github.com/comparison-sorting/odd-even-merge-sort): Batcher's odd-even mergesort for JavaScript

#### :zzz: Integer sorting

- :oden: [@integer-sorting/radix-sort](https://github.com/integer-sorting/radix-sort): Radix sorting algorithms for JavaScript
- [aureooms/js-countingsort](https://github.com/make-github-pseudonymous-again/js-countingsort): countingsort for JavaScript
- [aureooms/js-bucketsort](https://github.com/make-github-pseudonymous-again/js-bucketsort): bucketsort for JavaScript

### :symbols: Strings
Nothing yet.

### :hocho: Hashing
Nothing yet.

### :triangular_ruler: Geometry
- [@aureooms/js-cg](https://github.com/make-github-pseudonymous-again/js-cg) : computational geometry code bricks for JavaScript

### :globe_with_meridians: Graphs
- [@aureooms/js-gn](https://github.com/make-github-pseudonymous-again/js-gn) : graphs and networks code bricks for JavaScript
- :oden: [@graph-algorithm/topological-sorting](https://github.com/graph-algorithm/topological-sorting):
Topological sorting algorithms for Javascript
- :haircut_woman: [@graph-algorithm/minimum-cut](https://github.com/graph-algorithm/minimum-cut):
Minimum cut algorithms for JavaScript
- :blossom: [@graph-algorithm/maximum-matching](https://github.com/graph-algorithm/maximum-matching):
Maximum matching algorithms for JavaScript

### :1234: Numbers

- :zzz: [@aureooms/js-integer](https://github.com/make-github-pseudonymous-again/js-integer) :
Integers for JavaScript (ℤ)
- :woman_farmer: [@aureooms/js-rational-field](https://github.com/make-github-pseudonymous-again/js-rational-field) : Rational field for JavaScript (ℚ)

#### :symbols: Arithmetic
- :elephant: [@aureooms/js-integer-big-endian](https://github.com/make-github-pseudonymous-again/js-integer-big-endian): Arbitrary precision arithmetic for integers in big-endian order for JavaScript
- :pizza: [@aureooms/js-rational](https://github.com/make-github-pseudonymous-again/js-rational) : rational numbers code bricks for JavaScript
- :mermaid: [@aureooms/js-modular-arithmetic](https://github.com/make-github-pseudonymous-again/js-modular-arithmetic): Modular arithmetic for JavaScript.
- :globe_with_meridians: [@aureooms/js-complex](https://github.com/make-github-pseudonymous-again/js-complex) : complex numbers code bricks for JavaScript
- :wavy_dash: [@aureooms/js-polynomial](https://github.com/make-github-pseudonymous-again/js-polynomial) : sparse and dense polynomials code bricks for JavaScript

#### :two: :three: :five: :seven: Number theory
- :butterfly: [@aureooms/js-fft](https://github.com/make-github-pseudonymous-again/js-fft) : Fast Fourier transform algorithms for JavaScript
- [@aureooms/js-prime](https://github.com/make-github-pseudonymous-again/js-prime) : Prime numbers for JavaScript

#### :shell: Integer sequences
- [@aureooms/js-integer-sequences](https://github.com/make-github-pseudonymous-again/js-integer-sequences) : Integer sequences for JavaScript
- [@aureooms/js-fibonacci](https://github.com/make-github-pseudonymous-again/js-fibonacci) : Fibonacci numbers for JavaScript

### :game_die: Randomness
- [@randomized/random](https://github.com/randomized-algorithm/random): Randomness algorithms for JavaScript
- [@entropy-source/pseudo-random](https://github.com/entropy-source/pseudo-random) : Pseudorandom number generators for JavaScript

### :brain: Hard problems
- :satisfied: [@aureooms/js-sat](https://github.com/make-github-pseudonymous-again/js-sat) : Boolean formula satisfiability algorithms for Javascript
- :school_satchel: [@aureooms/js-knapsack](https://github.com/make-github-pseudonymous-again/js-knapsack) :
Knapsack problem algorithms for JavaScript
- :test_tube: [@aureooms/js-metaheuristics](https://github.com/make-github-pseudonymous-again/js-metaheuristics) :
Metaheuristic algorithms for JavaScript

### :left_right_arrow: Sytems of equalities and inequalities
- [@aureooms/js-equation](https://github.com/make-github-pseudonymous-again/js-equation) : equations system code bricks for JavaScript

### :broom: Combinatorics
- :exclamation: [@combinatorics/factorial](https://github.com/computational-combinatorics/factorial): Factorial function for JavaScript
- :seat: [@combinatorics/permutation](https://github.com/computational-combinatorics/permutation): Permutations library for JavaScript
- :zebra: [@combinatorics/n-permutations](https://github.com/computational-combinatorics/n-permutations): Set n-permutations for JavaScript
- :hippopotamus: [@combinatorics/n-combinations](https://github.com/computational-combinatorics/n-combinations): Set n-combinations for JavaScript
- :rhinoceros: [@combinatorics/n-multicombinations](https://github.com/computational-combinatorics/n-multicombinations): Set n-multicombinations for JavaScript
- :bento: [@combinatorics/set-partition](https://github.com/computational-combinatorics/set-partition): Set partition algorithms for Javascript

Those packages aim to provide *code bricks* that are as generic as possible.
Some examples are a Gauss-Jordan method that can work with any number model, a
Karatsuba algorithm that can handle any input size, a Graham Scan algorithm
that works with clockwise or counter clockwise ordering, and a Monotone Chain
algorithm that can be used as a triangulation algorithm without any change.

## :scroll: Reference

A list of links and projects focusing on algorithm implementation.

### :coffee: Projects implementing algorithms in JavaScript

- https://github.com/felipernb/algorithms.js
- https://github.com/mgechev/javascript-algorithms
- https://github.com/nzakas/computer-science-in-javascript
- https://github.com/benoitvallon/computer-science-in-javascript
- http://www.nayuki.io

### :peacock: Projects implementing algorithms in other languages

- https://github.com/xtaci/algorithms (C++)
- https://github.com/fragglet/c-algorithms (C)
- https://github.com/nryoung/algorithms (Python)
- https://github.com/kanwei/algorithms (Ruby)
- https://github.com/phishman3579/java-algorithms-implementation (Java)
- https://github.com/patmorin/ods (C++, Java, Python)
- http://www.nayuki.io (C, C++, Java, C#, Python, Haskell, MATLAB and others)
- http://rosettacode.org (All kinds of languages)

### :link: Others

- http://stackoverflow.com/questions/26301/your-favourite-algorithm-and-the-lesson-it-taught-you
- http://cglab.ca/publications.html