This repository is a personal learning and practice space for algorithms and data structures. It combines both theoretical exercises (like sorting, dynamic programming, and trees) and practical projects that apply these concepts to real-world inspired problems.
- Strengthen algorithmic thinking and problem-solving skills.
- Practice writing clean, well-documented, and tested code.
- Explore how data structures and algorithms are applied in real systems.
- Very limited / No AI use
| Folder | Description |
|---|---|
fundamentals/ |
Smaller examples focusing on core concepts (sorting, recursion, dynamic programming, etc.). |
projects/ |
Larger applications that apply algorithms to practical problems. |
tests/ |
Unit tests for selected implementations. |
| Project | Description | Concepts Used |
|---|---|---|
PathFinder |
Finds shortest paths between points on a map | Dijkstra, A*, graphs |
SortLab |
Compares runtime of various sorting algorithms | QuickSort, MergeSort, HeapSort |
TreeVisualizer |
Interactive visualization of binary trees | Trees, recursion |
Mutual module dependencies |
Finding circular module dependencies in a project | DFS, SCC, Kosarajus |
This repository includes implementations mainly in Python.
Each subproject contains its own README.md with:
- Problem description
- Algorithm explanation
- How to run the code
- Example input/output
I'm currently studying TDT4120 - Algorithms and Data Structures at NTNU. This repository reflects the topics covered in the course — extended with personal explorations and experiments.
- Implement visualization of dynamic programming states
- Build a small web interface for algorithm animations
- Explore parallel sorting algorithms
- Compare recursive vs iterative approaches
Feel free to explore, fork, or suggest improvements!