Datenstrukturen und Algorithmen

Das Array 29, 10, 14, 37, 13 wird mit Selectionsort aufsteigend sortiert: Das Minimum des unsortierten Teils wird gesucht und mit dem ersten Element des unsortierten Teils vertauscht. Wie sieht das Array aus, nachdem dieser Schritt zweimal ausgeführt wurde?

  1. A10, 13, 14, 37, 29
  2. B10, 14, 29, 37, 13
  3. C10, 14, 13, 29, 37
Antwort und Erläuterung anzeigen

Antwort: A. 10, 13, 14, 37, 29

Der erste Schritt tauscht das Gesamtminimum 10 mit der 29 an der Spitze und ergibt 10, 29, 14, 37, 13. Der zweite Schritt tauscht 13, das Minimum ab dem zweiten Element, mit der 29 an der zweiten Position und ergibt 10, 13, 14, 37, 29. Selectionsort macht stets n(n−1)/2 Vergleiche, aber höchstens eine Vertauschung pro Schritt, was bei teuren Schreibzugriffen ein Vorteil sein kann. 10, 14, 29, 37, 13 ist das Array, nachdem Insertionsort zwei Elemente eingefügt hat, und 10, 14, 13, 29, 37 das Array nach zwei Durchläufen von Bubblesort.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Datenstrukturen und Algorithmen

  1. Ein Array mit 10 Elementen wird mit Insertionsort aufsteigend sortiert. Jedes Element ab dem zweiten wird herausgenommen und mit den Elementen links davon verglichen, beginnend beim linken Nachbarn, bis ein Element gefunden wird, das kleiner oder gleich ist, oder der Anfang erreicht ist. Wie viele Vergleiche sind nötig, wenn das Array bereits aufsteigend sortiert ist, und wie viele, wenn es absteigend sortiert ist?
  2. Welches Sortierverfahren hat auch im schlechtesten Fall die Komplexität O(n log n) und sortiert fast ohne zusätzlichen Speicher wie ein Arbeitsarray?
  3. Die Datensätze (Name, Punktzahl) (A, 80), (B, 70), (C, 80), (D, 70) liegen in dieser Reihenfolge vor. In welcher Reihenfolge erscheinen die Namen, wenn mit einem stabilen Sortierverfahren aufsteigend nach Punktzahl sortiert wird?
  4. In welchem typischen Fall benötigt Quicksort O(n²) Zeit?
  5. Bei Mergesort werden die beiden sortierten Folgen 1, 4, 7, 9 und 2, 3, 8, 10 zu einer zusammengeführt (Merge), indem wiederholt die vordersten Elemente verglichen und das kleinere ausgegeben wird. Ist eine Folge leer, wird der Rest der anderen ohne Vergleich ausgegeben. Wie viele Vergleiche werden durchgeführt?