Sortieren Flashcards

1
Q

Sortierverfahren - Definition

A

Algorithmus, der dazu dient, eine Liste von Element zu sortieren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Klassifikation von Sortierverfahren

A
  • Internes Sortieren: Direkter (wahlfreier) Zugriff auf jedes einzelne Folgenelement, beispielsweise im Hauptspeicher einer Rechenanlage
  • Externes Sortieren: Zu sortierende Liste passt nicht komplett in den Hauptspeicher. Beispiel: Sortieren von großen Tabellen in Datenbanken
  • Voraussetzung: Auf Menge der zu sortierenden Elemente muss totale (numerische) Ordnung definiert sein
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Sortieren durch direktes Einfügen (insertion sort)

A
  • Die Elemente a[2], …, a[n] werden nacheinander betrachtet.
  • Jedes Element a[i] wird in der bereits sortierten Teilfolge a[1], …, a[i-1] an der richtigen Stelle eingefügt.
    • k=aktueller Wert
    • j: von rechts nach links durchsuchen
    • Suche richtige Stelle, Verschiebe Folge mit jedem j eine Position nach rechts
    • k wird rechts von j eingefügt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quicksort

A
  • beruht auf „Divide-and-Conquer-Technik
  • Aufruf: “quicksort(0, n-1)”, aber Vorgehen startet bei a[1]
  • Zerlegung (divide):
    1. Wähle x (:= a[1])
    2. Suche von links: (bei a[2] beginnend) bis x < a[i]
    3. Suche von rechts bis a[j] < x
    4. Falls i<j>
      </j>
    5. Wiederhole (2), (3) und (4) so lange, bis i ≥ j
    6. Vertausche anschließend x mit a[j] und teile Folge an dieser Stelle
  • Rekursion (conquer):
    • Wiederhole Verfahren für Teilfolgen bis diese einelementig sind
    • Aufruf nach Vertauschen (Beachte j im Code = j-1 bei Vorgehen, analog i):
      • if( Li < j - 1 ) { quicksort(Li, j - 1); }
      • if( j + 1 < Re ){ quicksort(j + 1, Re);

Eines der schnellsten bekannten Sortierverfahren!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quicksort - Varianten/Performance

A
  • Varianten - Wahl des Vergleichschlüssels:
    • festes Element
    • zufälliges - “ -
    • Durchschnittswerte etc.
  • Performance hägt ab von
    • Zahlenfolge
    • Wahl des Pivotelements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Heap

A
  • heap = Datenstruktur, bei der die Werte der beiden Kindknoten kleiner als der Wert ihres Vaterknotens sind (wenn die Folgenelemente als binärer Baum verstanden werden)

⇒ größtes Element an Listenanfang

  • Prinzip: Vergleichen und Vertauschen von Schlüsselwerten
  • Versickern: Knoten wird mit dem größten seiner Nachfolger vertauscht, falls NF vorhanden
  • Blätter erfüllen immer Heapbedingung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Heapsort - Vorgehen

A
  • Erstellen des (Ausgangs-)Heaps:
    • Blätter erfüllen Heapbedingung automatisch
    • Versickern in Rückwärtsreihenfolge (a[n/2], …, a[1])
  • Vertausche a[1] und a[n] (aufsteigend) oder spalte a[1] vorne ab (absteigend)
  • Versicker Teilfolge a[2], …, a[n]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

BottomUp HeapSort

A
  • in Praxis besser als Quicksort, das besser als Heapsort ist
  • Wurzel wird entlang des Pfades mit größeren Kind bis zum Blattknoten abgesenkt
  • neue Blattknoten muss so weit aufrücken, bis Heap-Eigenschaft wiederhergestellt ist
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Bubblesort

A
  • von links nach rechts Nachbarn vergleichen & ggf. vertauschen
  • wiederholen bis Folge sortiert
  • letztes Element des vorherigen Durchlaufs nicht mehr betrachtet werden, da die restlichen zu sortierenden Elemente kleiner bzw. größer sind
  • Je nachdem, ob auf-oder absteigend sortiert wird, steigen die größeren oder kleineren Elemente wie Blasen im Wasser
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Shakersort

A
  • abwechselnd von
    • links nach rechts und dann
    • von rechts nach links
    • Nachbarn vergleichen & ggf. vertauschen

⇒ Laufzeitvorteile (bestcase: O(n), worstcase: O(n2))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Unterschiede Bubblesort und Shakersort

A
  • Bubblesort durchläuft Folge immer von vorne.
  • Shakersort läuft abwechselnd von links nach rechts und von rechts nach links.
  • Daraus ergeben sich in einigen Fällen Laufzeitvorteile für den Shakersort.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly