Entwicklung und Umsetzung von Algorithmen
Dieser Beitrag ist eine Begriffserklärung zu Suchen, Sortieren und Rekursion – inklusive Prüfungsfragen und Tags.
In a Nutshell
Algorithmen sind präzise Rechenvorschriften. In der Softwareentwicklung sind sie u.a. wichtig für Suchen, Sortieren und rekursive Problemlösung.
Kompakte Fachbeschreibung
- Suchalgorithmen: lineare Suche, binäre Suche
- Sortieralgorithmen: Bubble Sort, Merge Sort, Quick Sort
- Rekursion: Funktion ruft sich selbst auf, bis Abbruchbedingung erreicht ist
Gute Algorithmen zeichnen sich durch Korrektheit, Effizienz (Laufzeit) und Robustheit aus.
Prüfungsrelevante Stichpunkte
- Binäre Suche nur bei vorsortierten Daten (IHK-relevant)
- Bubble Sort ineffizient (
O(n^2)) - Rekursion kann StackOverflow verursachen (Sicherheitsaspekt)
- Laufzeit entscheidet über Skalierbarkeit (Wirtschaftlichkeit)
- Big-O hilft beim Vergleichen
- Doku: Pseudocode, Komplexität, Testfälle
Kernkomponenten
- Lineare Suche
- Binäre Suche
- Bubble Sort
- Merge Sort
- Quick Sort
- Rekursion
- Iterative Alternativen
- Laufzeitanalyse (Big-O)
- Fehlerbehandlung/Abbruch
- Testfälle
Praxisbeispiel: Binäre Suche (Python)
def binary_search(arr, target):
low, high = 0, len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
Erklärung: Suche in O(log n) (sortierte Liste vorausgesetzt).
Vorteile und Nachteile
Vorteile
- Wiederverwendbar und testbar
- Optimiert kritische Programmteile
Nachteile
- Falsche Wahl kostet Performance
- Rekursion kann gefährlich werden ohne Abbruch
Typische Prüfungsfragen (mit Kurzantwort)
- Wann ist binäre Suche möglich? Nur bei sortierten Daten.
- Nachteil von Bubble Sort?
O(n^2). - Was ist Rekursion? Selbstaufruf bis Abbruch.
- Was bedeutet
O(n log n)? Typische Effizienzklasse z.B. für Merge Sort.
Lernstrategie
- Sortieralgorithmen visualisieren (z.B. VisuAlgo).
- Mindestens 3 Sortierverfahren selbst implementieren.
- Pseudocode schreiben + Komplexität angeben.
- Abbruchbedingungen bei Rekursion testen.