Welcome to the Algorithm Repository! This repository contains a collection of algorithms along with tests to evaluate their performance. It aims to provide comprehensive information about each algorithm, including their runtime complexity.
To get started, follow these steps:
-
Clone the repository to your local machine.
-
Install Mocha, Chai, and Node.js if you haven't already.
-
Run the following command in your Node.js terminal:
jest [algorithmFolder]/[algorithmTestFile.js] --watch
This command will execute the tests using Jest and continuously watch for changes.
The primary goal of this repository is to help you identify the runtime complexity of algorithms. By analyzing an algorithm's performance, we can determine how much additional processing power, time, or storage is required when the input size doubles. This analysis is expressed using Big O notation.
The "Big O()" notation folder in this repository provides a more concrete way to compare algorithms. It breaks down the different aspects of algorithmic analysis, enabling a deeper understanding of their performance characteristics.
Each algorithm folder contains a Q & A file, which serves as a comprehensive resource covering everything you need to know about the algorithm. It includes detailed explanations of the algorithm's approach, its data structures, and the reasoning behind specific design choices. Consider these files as your go-to references for algorithm-related questions.
We are currently not welcoming contributions to this repository! If you have an algorithm you'd like to add or have found a way to optimize an existing one, please feel free to submit a pull request. Sharing is caring.
This repository is released under the MIT License. Please review the license file for more information.
Happy exploring and analyzing algorithms!
- Algorithm Repository Team: 1) Tannehill