Wann was — Verfahren wählen
| Aufgabe | Bestes Verfahren | Komplexität |
|---|---|---|
| Sortieren, allgemein | Tim Sort (eingebaut) | O(n log n) |
| Sortieren, speicherarm | Heap Sort | O(n log n) / O(1) |
| Sortieren, fast sortiert | Insertion Sort | O(n) |
| Suche, sortiert | Binäre Suche | O(log n) |
| Suche, unsortiert | Linear oder Hash | O(n) bzw. O(1) |
| Kürzester Weg, ungewichtet | BFS | O(V+E) |
| Kürzester Weg, gewichtet | Dijkstra | O((V+E) log V) |
| Topologische Sortierung | DFS / Kahn | O(V+E) |
| Minimum/Maximum | Lineare Iteration | O(n) |
| Top-k aus n | Heap Größe k | O(n log k) |
FaustregelBevor du selbst implementierst: Sprache hat schon eingebaute Sort-/Search-Funktionen.
arr.sort() in JS, sorted(list) in Python — beide nutzen Tim Sort. Selbst implementieren nur, wenn besondere Anforderungen.