## About

This repository contains JavaScript implementations of different famous Computer Science algorithms.
API reference with usage examples available here.
*Note: not all algorithms are well tested so bugs are quite possible.*
## Development
**To install all dev dependencies**
Call:
```bash
npm install
```
**To setup repository with documentation**
- Go to the parent directory of the `javascript-algorithms` folder and call:
```bash
git clone https://github.com/mgechev/javascript-algorithms.git javascript-algorithms-docs
```
- Go to the `javascript-algorithms-docs` folder and change current branch to `gh-pages`:
```bash
git checkout gh-pages
```
Now you can see `index.html` file in this folder and open it in your browser.
**To update .html files with documentation**
Go to the `javascript-algorithms` folder and call:
```bash
gulp jsdoc
```
and all files in `javascript-algorithms-docs` folder will be updated.
**To run tests**
Call:
```bash
gulp test
```
and all `*.spec.js` files will be executed.
## Contributions
Fork the repo and make requred changes. After that push your changes in branch, which is named according to the changes you did.
Initiate the PR.
Make sure you're editor makes validations according to the `.jshintrc` in the root directory of the repository.
Before pushing to the repository run:
```bash
gulp build
```
If the build is not successful fix your code in order the tests and jshint validation to run successfully and after that create a pull request.
## Contributors
[
](https://github.com/mgechev) |[
](https://github.com/AndriiHeonia) |[
](https://github.com/Jakehp) |[
](https://github.com/lygstate) |[
](https://github.com/pvoznenko) |[
](https://github.com/filipefalcaos) |
:---: |:---: |:---: |:---: |:---: |:---: |
[mgechev](https://github.com/mgechev) |[AndriiHeonia](https://github.com/AndriiHeonia) |[Jakehp](https://github.com/Jakehp) |[lygstate](https://github.com/lygstate) |[pvoznenko](https://github.com/pvoznenko) |[filipefalcaos](https://github.com/filipefalcaos) |
[
](https://github.com/lekkas) |[
](https://github.com/deniskyashif) |[
](https://github.com/infusion) |[
](https://github.com/designeng) |[
](https://github.com/Microfed) |[
](https://github.com/ysharplanguage) |
:---: |:---: |:---: |:---: |:---: |:---: |
[lekkas](https://github.com/lekkas) |[deniskyashif](https://github.com/deniskyashif) |[infusion](https://github.com/infusion) |[designeng](https://github.com/designeng) |[Microfed](https://github.com/Microfed) |[ysharplanguage](https://github.com/ysharplanguage) |
[
](https://github.com/contra) |[
](https://github.com/fanixk) |
:---: |:---: |
[contra](https://github.com/contra) |[fanixk](https://github.com/fanixk) |
## License
The code in this repository is distributed under the terms of the MIT license.