A super fun, beginner-friendly data structures and algorithms course. ๐
Is it really the last algorithms course you'll need? If you want to pass tough interview questions, then yes! ๐ค
Learn about Big O, time complexity, fundamental data structures like arrays, lists, trees, graphs, and maps. Even searching and sorting algorithms. ๐ก๐
About this Repository
This repository is associated with The Last Algorithms Course You'll Need course from FrontendMasters, taught by ThePrimeagen.
Here, you'll find all the exercises, example algorithms, and data structures covered in the course.
This project covers a wide range of algorithms and data structures, organized into the following topics:
Category | Data Structures/ Algorithms | Documentation |
---|---|---|
Basics | Introduction, Big O, Arrays & Examples | Basics |
Search | Binary Search, Linear Search & Two Crystal Ball Problem |
Search |
Sort | Bubble Sort, Linked List, Queue & Stack | Sort |
Arrays | ArrayList & RingBuffer | Arrays |
Recursion | Recursion in General & Path Finding | Recursion |
Quick Sort | Divide and Conquer & Basic QuickSort | Sort |
Doubly Linked List | Implement a DoublyLinkedList | Sort |
Trees | Trees Overview & Tree Traversal (DFS) | Trees |
Tree Search | Breadth-First-Search & Binary Search Tree | Trees |
Heap | Heap Overview & Tries | Heap |
Graphs | Adjacency List, Adjacency Matrix & Dijkstra's Shortest Path |
Graphs |
Maps & LRU | Maps Overview & LRU Caching | Maps |
To run the algorithms and data structures tests, ensure Node.js is installed on the system. Refer to the official documentation for installation instructions. If asdf is being used, Node.js can also be installed via the .tool-versions
file. More information on this is available here.
Once Node.js is installed, follow these steps to set up and test the application:
git clone https://github.com/ThomasCode92/fem-algorithms.git
cd fem-algorithms # navigate into project folder
npm install # install dependencies
npm run test # run all unit tests
Ro run tests for a specific file, use the following command: npx jest <FILE>
. For example, to test the QuickSort implementation, run: npx jest QuickSort
.
Contributing
Please note that some files in the .src folder have not been implemented yet. Contributions are welcome, and those interested in enhancing the project can fork the repository, implement the missing functionality, and submit a pull request. This will help improve the overall quality of the project.