js-algorithms
js-algorithms copied to clipboard
:rocket: Algorithms for JavaScript
:rocket: Algorithms

© xkcd.com
Playground for algorithms in JavaScript. This is a child project of js-library and the twin project of 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: Searching algorithms for JavaScript
:waning_gibbous_moon: Merging
- aureooms/js-merging: merging for JavaScript
:cake: Partitioning
- @aureooms/js-partition: Partitioning algorithms for JavaScript
- @aureooms/js-splitting: Array splitting algorithms for JavaScript
:point_down: Selection
- aureooms/js-selection: selection for JavaScript
:signal_strength: Sorting
- @aureooms/js-sort: Sorting algorithms for JavaScript
:balance_scale: Comparison sorting
- :notebook_with_decorative_cover: @comparison-sorting/specification: Comparison sorting specification for JavaScript
- :leaves: @comparison-sorting/heap-sort: Heapsort for JavaScript
- :rabbit2: @comparison-sorting/quick-sort: Quicksort for JavaScript
- :rewind: @comparison-sorting/insertion-sort: Insertion sorting algorithms for JavaScript
- :person_fencing: @comparison-sorting/merge-insertion-sort: Ford-Johnson algorithm for JavaScript
- :dragon: @comparison-sorting/merge-sort: Mergesort for JavaScript
- :musical_score: @comparison-sorting/odd-even-merge-sort: Batcher's odd-even mergesort for JavaScript
:zzz: Integer sorting
- :oden: @integer-sorting/radix-sort: Radix sorting algorithms for JavaScript
- aureooms/js-countingsort: countingsort for JavaScript
- aureooms/js-bucketsort: bucketsort for JavaScript
:symbols: Strings
Nothing yet.
:hocho: Hashing
Nothing yet.
:triangular_ruler: Geometry
- @aureooms/js-cg : computational geometry code bricks for JavaScript
:globe_with_meridians: Graphs
- @aureooms/js-gn : graphs and networks code bricks for JavaScript
- :oden: @graph-algorithm/topological-sorting: Topological sorting algorithms for Javascript
- :haircut_woman: @graph-algorithm/minimum-cut: Minimum cut algorithms for JavaScript
- :blossom: @graph-algorithm/maximum-matching: Maximum matching algorithms for JavaScript
:1234: Numbers
- :zzz: @aureooms/js-integer : Integers for JavaScript (ℤ)
- :woman_farmer: @aureooms/js-rational-field : Rational field for JavaScript (ℚ)
:symbols: Arithmetic
- :elephant: @aureooms/js-integer-big-endian: Arbitrary precision arithmetic for integers in big-endian order for JavaScript
- :pizza: @aureooms/js-rational : rational numbers code bricks for JavaScript
- :mermaid: @aureooms/js-modular-arithmetic: Modular arithmetic for JavaScript.
- :globe_with_meridians: @aureooms/js-complex : complex numbers code bricks for JavaScript
- :wavy_dash: @aureooms/js-polynomial : sparse and dense polynomials code bricks for JavaScript
:two: :three: :five: :seven: Number theory
- :butterfly: @aureooms/js-fft : Fast Fourier transform algorithms for JavaScript
- @aureooms/js-prime : Prime numbers for JavaScript
:shell: Integer sequences
- @aureooms/js-integer-sequences : Integer sequences for JavaScript
- @aureooms/js-fibonacci : Fibonacci numbers for JavaScript
:game_die: Randomness
- @randomized/random: Randomness algorithms for JavaScript
- @entropy-source/pseudo-random : Pseudorandom number generators for JavaScript
:brain: Hard problems
- :satisfied: @aureooms/js-sat : Boolean formula satisfiability algorithms for Javascript
- :school_satchel: @aureooms/js-knapsack : Knapsack problem algorithms for JavaScript
- :test_tube: @aureooms/js-metaheuristics : Metaheuristic algorithms for JavaScript
:left_right_arrow: Sytems of equalities and inequalities
- @aureooms/js-equation : equations system code bricks for JavaScript
:broom: Combinatorics
- :exclamation: @combinatorics/factorial: Factorial function for JavaScript
- :seat: @combinatorics/permutation: Permutations library for JavaScript
- :zebra: @combinatorics/n-permutations: Set n-permutations for JavaScript
- :hippopotamus: @combinatorics/n-combinations: Set n-combinations for JavaScript
- :rhinoceros: @combinatorics/n-multicombinations: Set n-multicombinations for JavaScript
- :bento: @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