Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Stabilität (Sortierverfahren)

Ein stabiles Sortierverfahren ist ein Sortieralgorithmus, der die Reihenfolge der Datensätze, deren Sortierschlüssel gleich sind, bewahrt.

Inhalt6 Abschnitte
  1. 1. Definition und Bedeutung
  2. 2. Wann Stabilität keinen Unterschied macht
  3. 3. Gleiche Schlüssel bei unterscheidbaren Datensätzen
  4. 4. Mehrstufiges Sortieren von Tabellen
  5. 5. Anzahl möglicher Sortierordnungen
  6. 6. Beispiele für Sortierverfahren

Definition und Bedeutung

Ein stabiles Sortierverfahren ist ein Sortieralgorithmus, der bei Datensätzen mit gleichem Sortierschlüssel deren ursprüngliche Reihenfolge bewahrt. Der Sortierschlüssel ist das Feld oder Merkmal, nach dem sortiert wird.

Beispiel: Wird eine bereits alphabetisch geordnete Liste von Personen nach dem Geburtsdatum sortiert, bleiben bei einer stabilen Sortierung alle Personen mit demselben Geburtsdatum untereinander alphabetisch geordnet. Stabilität ist deshalb besonders wichtig, wenn Datensätze aus mehreren Feldern bestehen und nacheinander nach verschiedenen Merkmalen sortiert werden.

Bei einem instabilen Verfahren wie Quicksort kann die Reihenfolge von Datensätzen mit gleichem Schlüssel verändert werden. Soll sie trotzdem erhalten bleiben, kann jeder Datensatz eine Reihenfolgenummer erhalten. Diese wird als niedrigstrangigster Bestandteil in den Sortierschlüssel aufgenommen. In der Regel ist es weniger aufwändig, direkt ein stabiles Sortierverfahren zu verwenden.

Wann Stabilität keinen Unterschied macht

Stabile und instabile Verfahren liefern dasselbe sichtbare Ergebnis, wenn es unter den Sortierschlüsseln keine Duplikate gibt. Das gilt beispielsweise für die alphabetische Sortierung der drei verschiedenen Namen Carla, Annette und Birgit.

Auch wenn Datensätze mit gleichem Schlüssel nicht voneinander unterscheidbar sind, spielt Stabilität für das Ergebnis keine Rolle. Dies ist etwa der Fall, wenn der Schlüssel den gesamten Datensatz umfasst. Eine reine Zahlenliste wie 4, 3, 5, 3, 2, 1, 3 wird unabhängig von der Stabilität zu 1, 2, 3, 3, 3, 4, 5 sortiert, weil die einzelnen Vorkommen der Zahl 3 nicht unterscheidbar sind.

Gleiche Schlüssel bei unterscheidbaren Datensätzen

Ein Unterschied entsteht, wenn ein Datensatz mehrere Angaben enthält, aber nur nach einem Teilschlüssel sortiert wird. In der Beispielmenge stehen Zahlen zusammen mit Namen: 1 Anton, 4 Karl, 3 Otto, 5 Bernd, 3 Helmut, 8 Alfred und 1 Paul.

Bei stabiler Sortierung nach den Zahlen lautet das Ergebnis: 1 Anton, 1 Paul, 3 Otto, 3 Helmut, 4 Karl, 5 Bernd, 8 Alfred. Innerhalb der Gruppen mit den Schlüsseln 1 und 3 bleibt also die ursprüngliche Namensreihenfolge erhalten.

Bei instabiler Sortierung darf dagegen Paul vor Anton und Helmut vor Otto stehen. Da es für jede der beiden Gruppen zwei mögliche Reihenfolgen gibt, entstehen 2 × 2 = 4 mögliche Gesamtordnungen. Zu diesen Möglichkeiten gehört auch zufällig genau jene Ordnung, die ein stabiles Verfahren garantiert.

Mehrstufiges Sortieren von Tabellen

In der Informatik bestehen Tabellen aus Sequenzen von Datensätzen, die in Felder eingeteilt sind. Jeder Datensatz beschreibt eine Entität, jedes Feld ein Merkmal dieser Entität. Datenbanken, Tabellenkalkulationsprogramme und andere Anwendungen können einzelne Spalten als Sortierschlüssel auswählen.

Ein kombinierter Sortierschlüssel aus zwei Spalten, beispielsweise Dateityp und Dateigröße, kann durch zwei aufeinanderfolgende Sortierungen ersetzt werden. Zuerst wird nach dem niedrigrangigen Schlüssel Dateigröße und danach nach dem höherrangigen Schlüssel Dateityp sortiert. Der zweite Sortierlauf muss stabil sein, damit die innerhalb eines Dateityps bereits hergestellte Reihenfolge nach Dateigröße erhalten bleibt.

Allgemein muss bei mehreren Einzelsortierungen zuerst nach dem Schlüssel mit dem niedrigsten Rang sortiert werden. In einem Dateimanager kann ein Klick auf einen Spaltennamen eine aufsteigende Sortierung (▴) und ein zweiter Klick eine absteigende Sortierung (▾) auslösen. Enthält die Beispieltabelle die Dateien a, u und c vom Typ doc sowie k und r vom Typ txt, ergibt ein stabiler Sortierlauf nach Dateityp in der Spalte Dateiname die Reihenfolge a, u, c, k, r.

Anzahl möglicher Sortierordnungen

Bei vier Spalten kann eine stabile Sortierung nach einer passend gewählten Folge von höchstens vier einzelnen Feldern jede Kombination und Rangfolge der verwendeten Felder darstellen. Ohne Berücksichtigung der Sortierrichtung gibt es maximal

C(4,4) · 4! + C(4,3) · 3! + C(4,2) · 2! + C(4,1) · 1! = 24 + 24 + 12 + 4 = 64

Möglichkeiten. Dabei bezeichnet C(4,k) beziehungsweise der Binomialkoeffizient „4 über k“ die Auswahl von k Feldern aus vier; k! zählt ihre möglichen Rangfolgen.

Wird für jedes Feld zusätzlich zwischen aufsteigender und absteigender Sortierung unterschieden, lautet die Rechnung

C(4,4) · 2⁴ · 4! + C(4,3) · 2³ · 3! + C(4,2) · 2² · 2! + C(4,1) · 2¹ · 1! = 384 + 192 + 48 + 8 = 632.

Damit sind 632 Kombinationen aus Feldauswahl, Rangfolge und Sortierrichtung möglich.

Beispiele für Sortierverfahren

Als stabile Sortierverfahren nennt der Artikel Binary Tree Sort, Bubblesort, Countingsort, Cocktailsort, Gnomesort, Insertionsort, Mergesort, Radixsort und Shakersort.

Als instabile Sortierverfahren werden Bogosort, Combsort, Heapsort, Introsort, Quicksort, Selectionsort, Shellsort, Smoothsort, Slowsort und Stoogesort aufgeführt.

Lernvideos zu Stabilität (Sortierverfahren)

Weiterlesen

Sortierverfahren Unter einem Sortierverfahren versteht man in der Informatik einen Algorithmus, der dazu dient, ein Tupel (i. Allg. ein Array) zu sortieren. Quicksort Quicksort (englisch quick ‚schnell' und to sort ‚sortieren') ist ein schneller, rekursiver, nicht-stabiler Sortieralgorithmus, der nach dem Prinzip Teile … Mengenlehre Dieser Artikel befasst sich mit der mathematischen Theorie der Mengen; eine erste Einführung in die Begriffe der Mengenlehre findet sich unter Menge (Mathematik) … Informatik Als einfache Rechengeräte leisteten Abakus und später der Rechenschieber unschätzbare Dienste. 1641 konstruierte Blaise Pascal eine mechanische … Datei Eine Datei (englisch file) ist in der Informationstechnologie die Zusammenstellung gleichartiger digitaler Daten, die zum Speichern auf Datenträgern oder … Entität (Informatik) Als Entität (auch Informationsobjekt genannt, englisch entity) wird in der Datenmodellierung ein eindeutig zu bestimmendes Objekt bezeichnet, … Datenbank Eine Datenbank, auch Datenbanksystem genannt, ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe einer Datenbank ist es, große … Schlüssel (Datenbank) Fremdschlüssel. Bearbeiten. Ein Primärschlüssel einer Relation kann Fremdschlüssel einer anderen werden. Ein Fremdschlüssel ist ein Attribut oder eine … Kombination (Kombinatorik) Können Objekte dabei mehrfach ausgewählt werden, so spricht man von einer Kombination mit Wiederholung. Darf dagegen jedes Objekt nur einmal auftreten, spricht … Bubblesort Bubblesort (auch Sortieren durch Aufsteigen oder Austauschsortieren) ist ein Algorithmus, der vergleichsbasiert eine Liste von Elementen sortiert. Gnomesort Gnomesort ist ein sehr einfacher und stabiler Sortieralgorithmus. Animation von Insertionsort bzw. von Gnomesort ohne Visualisierung der … Mergesort Mergesort (von englisch merge ‚verschmelzen' und sort ‚sortieren') ist ein stabiler Sortieralgorithmus, der nach dem Prinzip teile und herrsche (divide and …