Schnellsortierung ist eine Verbesserung gegenüber der Blasensortierung. Teilen Sie die zu sortierenden Daten in zwei unabhängige Teile auf. Alle Daten in einem Teil sind kleiner als alle Daten im anderen Teil. Verwenden Sie dann diese Methode, um die beiden Teile der Daten schnell zu sortieren Der Sortiervorgang kann rekursiv ablaufen und schließlich werden die gesamten Daten zu einer geordneten Sequenz.
Angenommen, das zu sortierende Array ist A[0]...A[N-1]. Wählen Sie zunächst zufällig einen Datenwert (normalerweise die erste Zahl des Arrays) als Benchmark-Daten und dann alle kleineren Zahlen aus als es ist. Setzen Sie es davor und alle Zahlen, die größer als es sind, werden dahinter platziert. Dieser Vorgang wird als One-Pass-Schnellsortierung bezeichnet. Es ist zu beachten, dass die schnelle Sortierung kein stabiler Sortieralgorithmus ist, d. h. die relativen Positionen mehrerer identischer Werte können sich am Ende des Algorithmus ändern.
Der Algorithmus der Schnellsortierung in einem Durchgang lautet:
1) Setzen Sie zwei Variablen auf niedrig und hoch. Wenn die Sortierung beginnt: niedrig=0, hoch=N-1;
2) Verwenden Sie das erste Array-Element als Referenzdaten und weisen Sie es der Basis zu, d. h. base=A[0];
3) Von oben nach vorne suchen, also von hinten nach vorne suchen (hoch--), den ersten Wert A[hoch] finden, der kleiner als der Basiswert ist, und A[hoch] und A[niedrig] austauschen;
4) Suchen Sie von unten nach hinten, dh von vorne nach hinten (niedrig), finden Sie das erste A[niedrig], das größer als die Basis ist, und tauschen Sie A[niedrig] und A[hoch] aus
5) Wiederholen Sie die Schritte 3 und 4, bis niedrig=hoch;
Stabilität: Instabil.