- run
npm install
- Select Algo/Data Structure you want to work on
- remove
x
fromxdescribe
in the.test.js
file - Add
.only
to the firstdescribe
in the.test.js
file - like so:
describe.only('FANCY ALGO', () => {})
- run
npm test
- ???
- Profit
Each folder contains the solution, an empty file, and a file for the test specs. Most files also include a README describing the data structure or algo as well as the functions you need to implement.
Most of these implementations are what I have learned from the Coursera Princton Introduction to Algos Course, Part 1 and 2, and at Fullstack Academy. Although the Coursera course is in Java, I've implemented it in JavaScript.
I have written extensive test specs so others can use this repo to do test first learning. And also to check if the functions I wrote were actually doing what they were supposed to 😂.
A couple of the algorithms and data structures do not yet have test specs. Also the README's could be better. Will get on that...eventually...
Said Stuff:
- Test Specs
- All sorting algos
- KnuthShuffle
- Heap Sort Readme
- Graphs
- bfs
- dfs
- Write better README's for sorting algos
- Suffix Tree
- Topological Sort (using Tarjan's algorithm)
- Dijkstra's Algorithm
- Longest Common Subsequence (using dynamic programming)
- Knapsack Problem (using dynamic programming)