An open API service indexing awesome lists of open source software.

https://github.com/briangershon/algorithms-in-javascript

Algorithms written in JavaScript
https://github.com/briangershon/algorithms-in-javascript

Last synced: about 2 months ago
JSON representation

Algorithms written in JavaScript

Awesome Lists containing this project

README

        

# Algorithms written in JavaScript

## To run the algorithms and code challenges

First install the JavaScript dependencies with `npm install`

Then run:

npm test

I'd recommend adding the `eslint` plugin for your code editor. You can also run `npm run lint`.

## Algorithms

* Sorts:
* Bubble Sort (`src/bubble-sort.js`)
* Merge Sort (`src/merge-sort.js`)
* Hash Table (`src/hash-table.js`)
* Linked List (only with methods needed for HashTable) (`src/linked-list.js`)
* Fibonacci (`src/fibonacci.js`)
* Binary Search Tree (`src/binary-search-tree.js`)
* Binary Search Tree (Left-leaning Red/Black) (to keep tree continually balanced) (`src/binary-search-tree-red-black.js`)
* Shunting Yard (to convert infix notation to reverse-polish notation) (`src/shunting-yard.js`)
* Reverse Polish Notation (calculate result from postfix notation) (`src/reverse-polish-notation.js`)
* All permutations of an array (`src/permutation.js`)

## Codewars Challenges

[What is Codewars and Code Katas?](https://www.briangershon.com/blog/code-katas/)

For the more complex [codewars.com](https://www.codewars.com/r/CUDs2Q) katas, I've been coding and generalizing some of algorithms here -- see list above.

### Spoilers

Most of my solutions are on the Codewars' site. The following solutions represent my journey on more complex katas.

For maximum fun and education, I recommend you solve these on your own without peeking.

* parseInt() reloaded ([challenge description](https://www.codewars.com/kata/525c7c5ab6aecef16e0001a5)) `src/katas/parseint.js`
* Skyscrapers (6x6, 4x4) ([challenge description](https://www.codewars.com/kata/5679d5a3f2272011d700000d)) `src/katas/skyscraper.js`
* Optimized Pathfinding ([challenge description](https://www.codewars.com/kata/57b4d2dad2a31c75f7000223)) `src/katas/pathfinding-reachable-fields`