11 Stimme

Quicksort: Zwei Spalten sortieren

Frage von Gast | Letztes Update am 04.05.2021 | Erstellt am 27.05.2015

Ich möchte eine Tabelle mit Quicksort sortieren, dabei aber nicht nur eine sondern gleich zwei Spalten berücksichtigen. Ich möchte also zuerst die erste Spalte sortieren und bei gleichem Wert innerhalb der ersten Spalte soll innerhalb der zweiten Spalte sortiert werden.

Also zum Beispiel so:

Spalte 1   Spalte 2
A          A
A          B
A          C
B          A
B          B
B          C
C          A
C          B

Dafür habe ich den Algorithmus so angewendet, dass ich erst nach der ersten und dann nach der zweiten Spalte sortiert habe. Leider führt diese Sortierung dazu, dass beim Sortieren der zweiten Spalte die Werte der ersten Spalte wieder durcheinander gebracht werden.

Wie kann ich erreichen, dass die Werte beider Spalten stimmen und beim Sortieren der zweiten Spalte der Reihenfolge ersten Spalte sortiert bleibt?

AntwortenPositivNegativ
1Beste Antwort1 Stimme

Es gibt "stabile" Sortier-Algorithmen wie zum Beispiel Mergesort, mit denen würde es funktionieren, dass man erst die erst und dann die zweite Spalte sortiert. Quicksort dagegen ist nicht stabil.

Wenn du dasselbe Ergebnis mit Quicksort erreichen möchtest, musst du beim Vergleichen zweier Werte folgendermaßen vorgehen:

  • Vergleiche zunächst die Werte aus der ersten Spalte miteinander.
  • Falls die Werte ungleich sind, sortiere nach der ersten Spalte, die Werte aus der zweiten Spalte werden nicht berücksichtigt.
  • Falls die Werte gleich sind, sortiere nach den Werten aus der zweiten Spalte.

Damit geht es auch mit Quicksort.
Letztes Update am 04.05.2021 | Erstellt am 27.05.2015

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.