Algorithms step-by-step
A web app that automatically solves algorithms with step-by-step explanations.
The algorithms are implemented in Python and the explanations are written in Markdown. Additionally, for drawing the graphs, the Graphviz library is used.
The input for the algorithms is specified by the user in the web app. Also, the input can be generated randomly.
Algorithms
- Dijkstra's algorithm
- Kruskal's algorithm
- Prim's algorithm
- Floyd-Warshall algorithm
- Fibonacci with matrix exponentiation
- Edit distance
Setup
- Clone the repository:
git clone https://github.com/alexfdez1010/algorithms-step-by-step.git
- Install the dependencies:
pip install -r requirements.txt
- Run the app:
streamlit run app.py
Contributing
If you want to contribute to this project, you can do it in two ways:
- Adding a new algorithm: you can add a new algorithm by creating a new file in the
algorithms
folder and adding the algorithm's description in thedescriptions
folder. You will also to configure the algorithm in theconfig.py
file. You may want to take a look at the existing algorithms to see how they are implemented. - Improving the explanations: you can improve the explanations by editing the algorithms already implemented.
In either case, you can create a pull request and I will review it as soon as possible.
Bugs
If you find any bug, please open an issue in this repository and I will try to fix it as soon as possible. If you want to fix it yourself, you can also create a pull request. In any case, I will be very grateful for your help.