Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nadavmozeson/algorithms-implementation
A repository showcasing implementations of various algorithms, including graph algorithms (BFS, DFS, Dijkstra, Kruskal), dynamic programming solutions, and more. Designed for learning, practice, and demonstration of algorithmic problem-solving.
https://github.com/nadavmozeson/algorithms-implementation
algorithm-implementation algorithms code-examples coding-challenges computational-thinking data-structures dynamic-programming educational graph-algorithms graph-algorithms-visualizer problem-solving python
Last synced: 8 days ago
JSON representation
A repository showcasing implementations of various algorithms, including graph algorithms (BFS, DFS, Dijkstra, Kruskal), dynamic programming solutions, and more. Designed for learning, practice, and demonstration of algorithmic problem-solving.
- Host: GitHub
- URL: https://github.com/nadavmozeson/algorithms-implementation
- Owner: NadavMozeson
- Created: 2024-03-17T12:13:32.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2025-01-04T15:54:56.000Z (22 days ago)
- Last Synced: 2025-01-04T16:31:53.893Z (22 days ago)
- Topics: algorithm-implementation, algorithms, code-examples, coding-challenges, computational-thinking, data-structures, dynamic-programming, educational, graph-algorithms, graph-algorithms-visualizer, problem-solving, python
- Language: Python
- Homepage:
- Size: 129 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Algorithms Implementation
A simple and visualized method to track and understand the following algorithms.
- BFS
- DFS
- Topologic Sort
- Kosaraju-Sharir
- Kruskal
- Prim
- Dijkstra
- Bellman-Ford
- Floyd-Warshall
- DAG Shortest Path## Installation
### Required Python version: 3.11 and above
Use pip to install the required libraries used to run the code.
### Install commands for libraries:```bash
pip install -r requirements.txt
```
OR
```bash
pip install networkx
```
```bash
pip install matplotlib
```
```bash
pip install tabulate
```## Usage
### Running an Algorithm
#### Run the script and a GUI window will open on what algorithm you wish to run, select one from the list and press 'Next':
![image](https://github.com/NadavMozeson/Algo2/assets/117360467/ca389b1a-364e-4424-a2bd-9b7665f76432)
#### A GUI window with fields will open depending on the algorithm you chose:
![image](https://github.com/NadavMozeson/Algo2/assets/117360467/8b41f056-7956-4a58-9f4f-73f5e1dda7a3)
- **Load Graph:** Load a graph from a file.
- **Random/Draw:** Choose if to get a random graph or if you wish to draw one.
- **Save Graph:** Choose if you wish to save the graph for the next run/s.
- More fields will show depending on other choices made.
#### When selecting 'Draw' a drawing page will open when selecting 'Submit'
- **Left-Click:** Create a new Node
- **Right-Click:** Right-click on a node and then on another node to make an edge between the nodes.
- **Save Graph:** Close the draw GUI to save the graph and continue the run.
![image](https://github.com/NadavMozeson/Algo2/assets/117360467/4ae853d9-8bfd-443d-9134-d6392d1cc4f8)
### Using Debugger
Run the code using a debugger if you wish to track the algorithms.
### Graph Examples with Sources
**Graphs are saved in the "Graphs" directory**
- [BFSVideoExample](https://youtu.be/HZ5YTanv5QE?si=KrCOIhVv10YNR2Vs)
- [DFSVideoExample](https://youtu.be/Urx87-NMm6c?si=2ZF3S2E0W3CjTdVc)
- [FloydWarshallVideoExample](https://youtu.be/4OQeCuLYj-4?si=f3TKvK4lZuos1RdG)
- [PrimVideoExample](https://youtu.be/cplfcGZmX7I?si=F4Ryau0ypPoQyHJ_)
- [KruskalVideoExample](https://youtu.be/71UQH7Pr9kU?si=GLqIfo-1ASFNCEO9)
- [DijkstraVideoExample](https://youtu.be/_lHSawdgXpI?si=Pwqd5ZNCRZC_0psj)
- [BellmanFordVideoExample](https://youtu.be/obWXjtg0L64?si=ESwIjfO0QvV1AlHT)
- [FordFulkersonVideoExample](https://youtu.be/Tl90tNtKvxs?si=vAWbTNShxlnO4xXZ) (Can also be run by Edmonds-Karp)