The-Last-Algorithms-Course-.../README.md
2022-09-19 21:15:19 -06:00

96 lines
2.2 KiB
Markdown

## Developed live on twitch
[ThePrimeagen](https://twitch.tv/ThePrimeagen)
## Naming
### Lig-Machine
Lengthy Instrumentation Generating Massive Anticompetitive Computational Help for Intermediate Coders // n9
### Ligmata
Literal Improvement Gaining Master and Tutelage on Algorithms
Let's Intelligently Generate Multiple Algorithm Training Assessments // permdaddy
### Sugma Nuts
Studious Users Get Major Abilities. New Useful Training for Students
### Ligma Farts
Learn Intermediate Groundbreaking Massive Algorithms. Free Algorithm Research & Training System
### If you have a suggestion
make an issue and we will come up with the potential name.
### WARNING
I have just started to add algorithms, so the number of supported algorithms is
limited at the moment, but will grow fairly quick.
### WARNING
OUT OF DATE. We have quite a few more. need to update
### Supported Algorithm
* Insertion sort
* Merge sort
* QuickSort
* Prim's MST (Adjacency List)
* Dijkstra's Shortest Path (Adjacency List)
### Supported Data Structures
* Singly linked list
* Doubly linked list
* Queue
* Stack
* Graph with Adjacency List
* Graph with Adjacency Matrix (untested)
### How It Works
Make sure you have [Node.js](https://nodejs.org/en/) and yarn installed: `npm install --global yarn`
clone the repo and install the dependencies
```bash
yarn install
```
edit the `ligma.config.js` file
```javascript
module.exports = {
dsa: [
"InsertionSort",
"MergeSort",
"Queue",
"Stack",
"QuickSort",
"DijkstraList",
"PrimsList",
],
}
```
create a day of katas, this will use the list in the `ligma.config.js`.
```bash
yarn generate
```
this will progressively create folders named
```
src/day1
src/day2
...
```
`yarn generate` will also update the `tsconfig.json` and `jest.config` to point
the latest `day` folder via tspaths. This allows us to avoid updating anything
for testing each day.
#### Testing
```
yarn test
```
I have yet to create a testing strategy for next sets of algorithms, but we
will get there when i cross that bridge.
### Help wanted
A simple way to specify test, thinking something like `tests.json` and `cat
test.json 2> /dev/null` to specify the tests to run. tests.json wouldn't be
committed.