Standard-Algorithmen Suche & Sortierung – Lineare/Binäre Suche, BubbleSort, SelectionSort & InsertionSort
Dieser Beitrag ist eine Begriffserklärung zu Such- und Sortieralgorithmen – inklusive Prüfungsfragen und Tags.
In a Nutshell
Diese Standard-Algorithmen dienen dem schnellen Auffinden (Suche) oder der Ordnung (Sortieren) von Daten in Arrays oder Listen. Sie bilden eine prüfungsrelevante Grundlage für algorithmisches Denken.
Kompakte Fachbeschreibung
Lineare und binäre Suche sind elementare Verfahren zum Auffinden eines Wertes in Datenstrukturen. Die lineare Suche prüft jedes Element sequenziell, während die binäre Suche eine sortierte Liste nutzt und die Suche halbiert. Sortieralgorithmen wie Bubble Sort, Selection Sort und Insertion Sort dienen der Reihung von Daten. Bubble Sort vergleicht benachbarte Elemente mehrfach, Selection Sort sucht das kleinste Element und tauscht es nach vorne, Insertion Sort baut eine sortierte Liste sukzessive auf. Diese Algorithmen unterscheiden sich vor allem in Komplexität und Effizienz (Big-O).
Prüfungsrelevante Stichpunkte
- Lineare Suche durchläuft jedes Element sequenziell (O(n))
- Binäre Suche halbiert iterativ den Suchbereich (O(log n), nur bei sortierten Daten)
- Bubble Sort vergleicht und vertauscht Nachbarelemente mehrfach (O(n²))
- Selection Sort sucht jeweils das Minimum und tauscht es nach vorne (O(n²))
- Insertion Sort sortiert durch sukzessives Einfügen (O(n²), aber gut bei fast sortierten Daten)
- Verständnis der Ablauflogik ist prüfungsrelevant (Pseudocode, Dry Run)
- Stabilität, Speicherbedarf und Komplexität unterscheiden sich deutlich
Kernkomponenten
- Lineare Suche
- Binäre Suche
- Bubble Sort
- Selection Sort
- Insertion Sort
- Laufzeitkomplexität (Big-O)
- Stabilität (Reihenfolge gleichwertiger Elemente)
- Iterativer Ablauf mit Indexverwaltung
- Absicherung gegen Indexfehler
- Dry Run zur Verifikation
Praxisbeispiel
// Beispiel: Insertion Sort
funktion insertionSort(array)
für i von 1 bis array.länge - 1
key = array[i]
j = i - 1
solange j >= 0 und array[j] > key
array[j + 1] = array[j]
j = j - 1
array[j + 1] = key
Erklärung: Das aktuelle Element wird in den sortierten linken Teil einsortiert.
Vorteile und Nachteile
Vorteile
- Einfach zu implementieren und verstehen
- Gut geeignet für kleine oder nahezu sortierte Datensätze
- Stabil (besonders Insertion Sort)
Nachteile
- Ineffizient bei großen Datenmengen (O(n²))
- Bubble und Selection Sort benötigen viele Vergleiche
- Binäre Suche nur bei sortierten Arrays einsetzbar
Typische Prüfungsfragen (mit Kurzantwort)
- Binäre Suche funktioniert und wann anwendbar? Halbiert iterativ den Suchbereich – nur bei sortierten Daten.
- Bubble Sort vs. Selection Sort? Bubble Sort vergleicht Nachbarn, Selection Sort sucht Minimum pro Durchlauf.
- Warum Insertion Sort stabil? Gleiche Werte behalten ihre ursprüngliche Reihenfolge.
- Bubble Sort Laufzeit im schlechtesten Fall? O(n²), da jedes Element mehrfach verglichen wird.
- Stabilität bei Sortieralgorithmen bedeutet? Gleichwertige Elemente behalten ihre Reihenfolge.
- Effizientere Suche bei sortierten Daten? Binäre Suche mit O(log n).
- Insertion Sort effizient bei fast sortierten Daten? Weil nur wenige Vergleiche und Verschiebungen nötig sind.
- Algorithmus mit Dry Run prüfen? Durch manuelles Nachvollziehen der Zwischenschritte mit konkreten Daten.
Wichtigste Quellen
- https://visualgo.net/en/sorting
- https://www.geeksforgeeks.org/sorting-algorithms
- https://cs-field-guide.org.nz/en/chapters/algorithms