Lecture 9 Flashcards
(12 cards)
Grundidee SelectionSort?
Wiederholt kleinstes verbliebenes Element suchen und ans Ende der bereits sortierten Teilliste tauschen.
Pseudocode-Kern von SelectionSort?
Zwei Schleifen: äußere i = 0…n−1; innere sucht Index k des Minimums in a[i…n−1]; danach swap(a,i,k).
Laufzeit von SelectionSort und Begründung?
Θ(n²) Vergleiche, da Minimumsuche i-ter Schritt Θ(n−i).
Vorteil/Nachteil von SelectionSort laut Folie?
+ sehr einfach ; – quadratische Laufzeit.
Grundidee InsertionSort?
Nimm nächstes Element und schiebe es in die bereits sortierte Prefix-Sequenz an die richtige Stelle.
InsertionSort-Codefragment (innere Schleife)?
j-Schleife läuft rückwärts und tauscht, bis a[j] ≤ a[j+1]; frühzeitiger break möglich.
Worst- und Best-Case-Komplexität von InsertionSort?
O(n²) allgemein; Θ(n) wenn Eingabe bereits sortiert.
Warum ist InsertionSort im Best Case linear?
Case linear? Innere if-Bedingung schlägt nie zu → jede Iteration nur ein Vergleich.
Vorteil/Nachteil von InsertionSort laut Folie?
laut Folie? + sehr einfach, best-case linear; – quadratische Laufzeit sonst.
QuickSort – zentrale Idee in einem Satz?
Teile mit Pivot p in < p und ≥ p, sortiere beide Teilfelder rekursiv.
Wie wählt man das Pivot laut Folie?
Erstes, mittleres, letztes oder zufällig ausgewähltes Element.
Worst-Case-Laufzeit von QuickSort und wann tritt sie ein?
Θ(n²), wenn Pivot immer das kleinste oder größte Element ist (extrem unbalanciert).