WISSENSARTIKEL / COMPUTER & HARDWARE

Quicksort – Effizientes Sortierverfahren in der Informatik

Ein schneller und weit verbreiteter Algorithmus zum Sortieren von Daten

◎ KURZDEFINITION

Quicksort Quicksort ist ein rekursiver Sortieralgorithmus, der eine Liste durch wiederholtes Teilen in kleinere Teilmengen sortiert, indem er ein Pivot-Element auswählt und die Liste so partitioniert, dass Elemente kleiner als das Pivot links und größere rechts davon liegen.

Eigenständig verständliche Definition
✦

Das Wichtigste auf einen Blick

  • Quicksort ist ein schneller, rekursiver Sortieralgorithmus basierend auf dem Prinzip ‚Teile und herrsche‘.
  • Die Wahl des Pivot-Elements ist entscheidend für die Effizienz.
  • Im Durchschnitt hat Quicksort eine Laufzeit von O(n log n), im schlechtesten Fall O(n²).
  • Quicksort ist ein in-place Algorithmus mit geringem Speicherbedarf.
  • Der Algorithmus ist nicht stabil, das heißt, gleiche Elemente können ihre Reihenfolge ändern.
  • Quicksort wird häufig in der Praxis verwendet, insbesondere bei großen Datenmengen.
01

Überblick: Quicksort

Quicksort wurde 1960 von Tony Hoare entwickelt und zählt zu den effizientesten Vergleichssortierverfahren. Es wird häufig in Softwarebibliotheken und Anwendungen eingesetzt, bei denen große Datenmengen schnell sortiert werden müssen. Durch seine durchschnittliche Laufzeit von O(n log n) ist Quicksort meist schneller als andere einfache Sortieralgorithmen wie Bubble Sort oder Insertion Sort.

02

Grundprinzip von Quicksort

Quicksort basiert auf der Idee, eine Liste in kleinere Teilmengen zu zerlegen, die jeweils sortiert werden. Dazu wird ein sogenanntes Pivot-Element gewählt, anhand dessen die Liste in zwei Teile partitioniert wird: links alle Elemente, die kleiner oder gleich dem Pivot sind, rechts alle größeren Elemente. Anschließend wird der Algorithmus rekursiv auf diese Teilmengen angewandt, bis die gesamte Liste sortiert ist.

03

Auswahl des Pivot-Elements

Die Wahl des Pivot-Elements ist entscheidend für die Effizienz von Quicksort. Häufig werden das erste, das letzte oder das mittlere Element als Pivot gewählt. Alternativ kann ein zufälliges Element oder der Median von drei Elementen verwendet werden, um die Wahrscheinlichkeit eines schlechten Laufzeitverhaltens zu verringern.

04

Schritte des Quicksort-Algorithmus

SchrittBeschreibung
1Wähle ein Pivot-Element aus der Liste.
2Partitioniere die Liste so, dass alle Elemente kleiner oder gleich dem Pivot links und alle größeren rechts stehen.
3Wende Quicksort rekursiv auf die linke Teilmenge an.
4Wende Quicksort rekursiv auf die rechte Teilmenge an.
5Kombiniere die sortierten Teilmengen.
6Beende, wenn die Teilmengen eine Länge von 0 oder 1 haben.
05

Vergleich von Sortieralgorithmen

AlgorithmusDurchschnittliche LaufzeitSchlechteste LaufzeitSpeicherbedarf
QuicksortO(n log n)O(n²)In-place
Merge SortO(n log n)O(n log n)Nicht in-place
Bubble SortO(n²)O(n²)In-place
06

Vorteile und Nachteile von Quicksort

VorteileNachteile
Sehr schnell im DurchschnittSchlechtester Fall mit O(n²) möglich
In-place Algorithmus, benötigt wenig zusätzlichen SpeicherRekursive Implementierung kann Stacküberlauf verursachen
Einfach zu implementierenNicht stabil (gleiche Elemente können ihre Reihenfolge ändern)
07

Beispiel einer Quicksort-Partitionierung

✦

Gegeben sei die Liste [7, 2, 1, 6, 8, 5, 3, 4]. Wählt man 4 als Pivot, so werden die Elemente so umgeordnet, dass links von 4 alle kleineren oder gleichen Werte stehen und rechts die größeren: [2, 1, 3, 4, 8, 5, 7, 6]. Anschließend wird Quicksort rekursiv auf die Teilmengen links und rechts von 4 angewandt.

08

Wichtiger Hinweis zur Pivot-Wahl

✦

Die Wahl eines schlechten Pivots, wie z.B. immer das erste oder letzte Element bei bereits sortierten Listen, kann die Leistung von Quicksort erheblich verschlechtern. Daher werden oft Techniken wie die Median-of-three Pivot-Wahl eingesetzt.

◇

Zusatzinformationen

◇

Algorithmustyp: Vergleichssortieralgorithmus

Entwickler: Tony Hoare

Erstveröffentlichung: 1960

Prinzip: Teile und herrsche

Laufzeit (durchschnittlich): O(n log n)

Laufzeit (schlechtester Fall): O(n²)

Speicherbedarf: In-place (O(log n) zusätzlicher Speicher für Rekursion)

Anwendungsbereiche: Sortierung großer Datenmengen, Standardbibliotheken

Aa

Synonyme und alternative Bezeichnungen

?

Häufige Fragen zu Quicksort

Was ist Quicksort?

Quicksort ist ein effizienter, rekursiver Sortieralgorithmus, der eine Liste durch Partitionierung anhand eines Pivot-Elements in kleinere Teilmengen zerlegt und diese sortiert.

Wie funktioniert die Pivot-Wahl bei Quicksort?

Das Pivot-Element wird ausgewählt, um die Liste in zwei Teile zu teilen. Es kann das erste, letzte, mittlere oder ein zufälliges Element sein. Eine gute Pivot-Wahl verbessert die Laufzeit.

Warum kann Quicksort im schlechtesten Fall langsam sein?

Wenn das Pivot-Element ungünstig gewählt wird, z.B. immer das größte oder kleinste Element, kann die Partitionierung sehr unausgeglichen sein, was zu einer Laufzeit von O(n²) führt.

Ist Quicksort ein stabiler Algorithmus?

Nein, Quicksort ist nicht stabil, da gleiche Elemente ihre relative Reihenfolge während der Partitionierung ändern können.

Wie viel zusätzlichen Speicher benötigt Quicksort?

Quicksort ist ein in-place Algorithmus und benötigt nur O(log n) zusätzlichen Speicher für die Rekursion.

In welchen Anwendungen wird Quicksort eingesetzt?

Quicksort wird in vielen Programmbibliotheken und Anwendungen verwendet, die schnelle Sortierungen großer Datenmengen erfordern, etwa in Datenbanken und Systemsoftware.

Wie kann man die Leistung von Quicksort verbessern?

Durch eine gute Pivot-Wahl, z.B. Median-of-three, und durch Hybridverfahren, die bei kleinen Teilmengen auf andere Sortieralgorithmen wechseln, lässt sich die Leistung optimieren.

▤

Quellen & weiterführende Informationen

Quellenvorschläge und Nachweise zum Artikel. Bitte externe Inhalte eigenständig prüfen.

3 Quellen
  1. 01
    Quicksort Algorithm ↗
    Wikipedia· Gemeinschaft der Autoren· Online-EnzyklopädieKI-Vorschlag · ungeprüft

    Fundierte und allgemein anerkannte Beschreibung des Quicksort-Algorithmus.

    https://de.wikipedia.org/wiki/Quicksort
  2. 02
    Algorithmen und Datenstrukturen ↗
    Informatik Lexikon· Informatik Experten· FachlexikonKI-Vorschlag · ungeprüft

    Detaillierte Erklärung und Analyse von Quicksort.

    https://www.informatik-lexikon.de/algorithmen/quicksort.html
  3. 03
    Introduction to Algorithms ↗
    MIT Press· Thomas H. Cormen et al.· BuchKI-Vorschlag · ungeprüft

    Standardwerk zur Algorithmik mit ausführlicher Behandlung von Quicksort.

    https://mitpress.mit.edu/books/introduction-algorithms

Artikel teilen oder einbetten

Teile diesen Wissensartikel oder binde eine kompakte Vorschau auf deiner eigenen Website ein.

f Facebookin LinkedIn𝕏 X◉ WhatsApp
War dieser Artikel hilfreich?Dein Feedback hilft, die Wissensplattform zu verbessern.
ANSWER ENGINE · ARTIKEL

Diese Seite in Zahlen

Artikelstatistik
↗–Aufrufe dieses Artikels
◷–Unique Nutzer letzte 24 Stunden
◉–Unique Nutzer heute
▦–Unique Nutzer diesen Monat
Feedback zu diesem Artikel
👍 Ja
0
◐ Teilweise
0
👎 Nein
0

Alle Werte in diesem Abschnitt beziehen sich ausschließlich auf diesen Artikel.

ANSWER ENGINE · GESAMTES NETZWERK

Wissensplattform in Zahlen

Netzwerkstatistik
↗–Seitenaufrufe gesamt
◷–Unique Nutzer letzte 24 Stunden
◉–Unique Nutzer heute
▦–Unique Nutzer diesen Monat

Diese Werte beziehen sich auf die gesamte Plattform und alle veröffentlichten Artikel.