- Notifications
You must be signed in to change notification settings - Fork9
Common algorithms implemented in JavaScript.
License
sumtype/common-algorithms-js
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Common algorithms implemented in JavaScript withMocha/Chai testing. UsesBabel andUMD to transpile algorithm modules from ES6+ to ES5. Test coverage reports are provided bynyc and piped toCoveralls. Coveralls reports coverage for ES6+ algorithms (although both ES6+ and transpiled ES5 algorithms are tested byTravis-CI). All JavaScript code followsJavaScript Standard Style guidelines. README translations are provided in thelocales directory and translated with Google Translate. CurrentlySpanish,Hebrew, andChinese are available.Contributions are welcome! Follow the guidelines.
- Binary Search
- Bubble Sort
- Bucket Sort
- Cocktail Sort
- Counting Sort
- Durstenfeld Shuffle (a.k.a. Knuth Shuffle)
- Gnome Sort
- Insertion Sort
- Linear Search
- Merge Sort
- Quick Sort
- Radix Sort
- Reservoir Sampling
- Sattolo Cycle
- Selection Sort
- Shell Sort
- Sleep Sort
- Are Anagrams
- Are Palindromes
- Boyer-Moore String Match
- Boyer-Moore-Horspool String Match
- Brute Force String Match
- Damerau-Levenshtein Distance
- Hamming Distance
- Has Duplicate Characters
- Knuth-Morris-Pratt String Match
- Levenshtein Distance
- Longest Common Subsequence
- Longest Common Substring
- Matching Delimiters
- Rabin-Karp String Match
- Sørensen-Dice Coefficient
To install the algorithms for use in your project run:
yarn add common-algorithms-js
or if you don't have Yarn installed, run:
npm i common-algorithms-js
Once you've downloaded the library, you can start using it in your project like this:
Using require()
var algorithms = require('common-algorithms-js/es5').default
or if you only want a specific algorithm (the Bezier Curve algorithm for example):
var bezierCurve = require('common-algorithms-js/es5').bezierCurve
or if you only want a specific category of algorithms (string algorithms for example):
var stringAlgorithms = require('common-algorithms-js/es5').string
Using ES6 Import/Export
import * as algorithms from 'common-algorithms-js'
or if you only want a specific algorithm (the Fibonacci Number algorithm for example):
import { fibonacciNumber } from 'common-algorithms-js'
or if you only want a specific category of algorithms (math algorithms for example):
import { math } from 'common-algorithms-js'
The default export returns an object that looks something like this:
{ array: { binarySearch: function..., bubbleSort: function..., ... }, geometry: { bezierCurve: function..., ... }, graph: { breadthFirstSearch: function..., ... }, math: { fibonacciNumber: function..., ... }, string: { areAnagrams: function..., ... },}
it contains all the algorithms available in the library.
To run the tests yourself you'll need to download the project and install its node module dependencies viayarn ornpm. So, if you haven't already installedNode.js and npm or yarn for use on your command line hop over to theNVM repository to get setup with the Node.js version you'd like to work with. Once you have Node.js and npm installed, clone the project onto your computer using the following command in your terminal/command prompt/console:
git clone https://github.com/sumtype/common-algorithms-js.git
(Just in case you haven't already installedGit, do so by following the installation instructionshere, then enter the previous command again once it's installed.) Once you've downloaded the project use the following command to navigate to the project's root directory:
cd common-algorithms-js
Next, install the project's node module dependencies from npm or yarn. Do so by entering this command:
npm i
or this command:
yarn
Once all the dependencies are installed you'll be ready to run the tests. Enter the following command to run them:
npm test
or
yarn test
When runningnpm test
oryarn test
all the algorithms, tests, and "./es5.js" file are transpiled based on their corresponding ES6+ files. This way when running your tests not only are your ES6+ algorithms tested in an ES6+ context, but your transpiled ES5 algorithms are tested in transpiled ES5 test contexts. Since modules in tests are loaded via "./es.js" or the transpiled "./es5.js" file the export files themselves are tested too. In addition,standard is run to ensure all ES6+/ES5 code is style compliant and the test breaks if there are issues.
This repository usesTravis-CI for deployment testing on Node.js versions 10.15.x and 11.8.x. Test coverage is reported by Coveralls. Test reports are generated by nyc.
You can also transpile the ES5 versions of tests and algorithms manually. To do so, run:
npm run transpile-es5
or
yarn transpile-es5
About
Common algorithms implemented in JavaScript.
Topics
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.