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
- Host: GitHub
- URL: https://github.com/briangershon/algorithms-in-javascript
- Owner: briangershon
- License: isc
- Created: 2019-03-27T16:58:20.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2023-01-15T08:08:27.000Z (over 2 years ago)
- Last Synced: 2025-01-12T09:45:24.450Z (4 months ago)
- Language: JavaScript
- Size: 1.46 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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`