Traditional computer science algorithms and data structures implemented in JavaScript
npm install algorithms





Classic algorithms and data structures implemented in JavaScript, you know... FOR SCIENCE.
npm install --save algorithms
`$3
#### Data Structures
`javascript
require('algorithms/data_structures');
// or
require('algorithms').DataStructures;
`* BST
* DisjointSetForest
* FenwickTree
* Graph
* HashTable
* Heap
* MaxHeap
* MinHeap
* LinkedList
* PriorityQueue
* Queue
* Set (HashSet)
* Stack
#### Geometry algorithms
`javascript
require('algorithms/geometry');
// or
require('algorithms').Geometry;
`* BezierCurve
#### Graph algorithms
`javascript
require('algorithms/graph');
// or
require('algorithms').Graph;
`* breadthFirstSearch
* depthFirstSearch
* eulerPath
* topologicalSort
##### Shortest path
* bellmanFord
* bfsShortestPath
* dijkstra
* floydWarshall
* SPFA (Shortest Path Faster Algorithm)
##### Minimum spanning tree
* prim
* kruskal
#### Math algorithms
`javascript
require('algorithms/math');
// or
require('algorithms').Math;
`
* collatzConjecture
* extendedEuclidean
* fastPower
* fibonacci
* fisherYates
* gcd (Greatest common divisor)
* greatestDifference
* lcm (Least common multiple)
* newtonSqrt
* nextPermutation
* powerSet
* reservoirSampling
* shannonEntropy#### Search algorithms
`javascript
require('algorithms/search');
// or
require('algorithms').Search;
`* bfs (breadth-first search for binary trees)
* binarySearch
* dfs (depth-first search for binary trees)
* inOrder (default)
* postOrder
* preOrder
#### Sorting algorithms
`javascript
require('algorithms/sorting');
// or
require('algorithms').Sorting;
`* bubbleSort
* countingSort
* heapSort
* insertionSort
* quicksort
* radixSort
* selectionSort
* shellSort
* shortBubbleSort
#### String algorithms
`javascript
require('algorithms/string');
// or
require('algorithms').String;
``* hamming
* huffman
* decode
* encode
* knuthMorrisPratt
* levenshtein
* longestCommonSubsequence
* longestCommonSubstring
* rabinKarp