Interaktive Jupyter Notebooks zu klassischen Algorithmen — modular aufgebaut: ein Notebook pro Algorithmus. Sortier-, Such- und Graphenalgorithmen (BFS, DFS, Dijkstra) mit Erklärungen und Schritt-für-Schritt-Code. Alle Algorithmen sind in reinem Python implementiert und direkt in Google Colab ausführbar.
- 🔄 Sortieralgorithmen — Bubble Sort, Quick Sort, Merge Sort und Heap Sort
- 🔍 Suchalgorithmen — Lineare Suche und Binäre Suche
- 🕸️ Graphenalgorithmen — BFS, DFS und Dijkstra
- 📓 Modular — ein eigenes Notebook pro Algorithmus, wie
Djkstra.ipynb
Jedes Notebook lässt sich direkt in Google Colab öffnen und ausführen:
💡 Tipp: In Colab: Datei → In Drive speichern → mit GPU/TPU ausführen.
git clone https://github.com/mark-baumann/algorithmen.git
cd algorithmen
uv venv
source .venv/bin/activate
uv pip install jupyter numpy matplotlib
jupyter notebookalgorithmen/
├── bubble_sort.ipynb # Bubble Sort
├── quick_sort.ipynb # Quick Sort
├── merge_sort.ipynb # Merge Sort
├── heap_sort.ipynb # Heap Sort
├── lineare_suche.ipynb # Lineare Suche
├── binaere_suche.ipynb # Binäre Suche
├── bfs.ipynb # BFS (Breitensuche)
├── dfs.ipynb # DFS (Tiefensuche)
└── Djkstra.ipynb # Dijkstra (Kurzreferenz)
| Algorithmus | Komplexität (avg) | Komplexität (worst) | Stabil |
|---|---|---|---|
| Bubble Sort | O(n²) | O(n²) | ✅ |
| Quick Sort | O(n log n) | O(n²) | ❌ |
| Merge Sort | O(n log n) | O(n log n) | ✅ |
| Heap Sort | O(n log n) | O(n log n) | ❌ |
| Algorithmus | Komplexität | Voraussetzung |
|---|---|---|
| Lineare Suche | O(n) | Keine |
| Binäre Suche | O(log n) | Sortiertes Array |
| Algorithmus | Komplexität | Anwendung |
|---|---|---|
| BFS (Breitensuche) | O(V + E) | Kürzeste Pfade (ungewichtet), Level-Order |
| DFS (Tiefensuche) | O(V + E) | Zyklen-Erkennung, Topologische Sortierung |
| Dijkstra | O((V+E) log V) | Kürzeste Pfade (gewichtet, positiv) |
Mark Baumann — GitHub
Algorithmen sind das Handwerkszeug jedes Entwicklers. Diese Notebooks machen abstrakte Konzepte durch Code und Erklärungen greifbar.