π This repository contains the implementation and resolution of fundamental computer science algorithms, categorized by algorithmic paradigms. Each section includes 6 solved exercises, accompanied by explanatory comments and, in some cases, visualizations or efficiency comparisons.
advanced-algorithms/
β
βββ 01-greedy/
β βββ exercise1.py
β βββ ...
β βββ exercise6.py
β
βββ 02-graphs/
β βββ exercise1.py
β βββ ...
β βββ exercise6.py
β
βββ 03-divide-and-conquer/
β βββ exercise1.py
β βββ ...
β βββ exercise6.py
β
βββ 04-backtracking-pruning/
β βββ exercise1.py
β βββ ...
β βββ exercise6.py
β
βββ 05-greedy-on-graphs/
β βββ exercise1.py
β βββ ...
β βββ exercise6.py
β
βββ README.md
Implementations of algorithms such as the coin change problem, fractional knapsack, activity selection, etc.
BFS, DFS, cycle detection, Topological Sort (TopSort), connected components, shortest paths, etc.
Includes MergeSort, QuickSort, Binary Search, finding maximum/minimum values, matrix multiplication, etc.
Sudoku solvers, N-Queens problem, labyrinths, exact knapsack, and combinations with constraints.
Prim's and Kruskal's algorithms (MST), Dijkstra's algorithm (shortest path), edge selection, and spanning trees.
- Python 3.9+
- Libraries:
networkx,matplotlib(optional, for graph visualization)
cd 01-greedy
python exercise1.pyIf you'd like to add more exercises or improvements, feel free to fork the repository and open a Pull Request.
This project is licensed under the MIT License.