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