Sortierungs-Algorithmus: QuickSort

Allgemeines

Der sehr pragmatisch und passend benannter Sortieralgorithmus QuickSort ist eines der zeitlich effizientesten in seiner Kategorie. Deren Stärke bezieht er aus dem Konzept des Teilen und Herrschens.

Prozess

  1. Zu aller erst wird, ausgehend der zu sortierenden Liste, ein Element als sogenannter "pivot" (Trennpunkt) ausgewählt. Die Wahl des pivots ist massgebend bezüglich der Effizienz, garantiert wird sie jedoch nicht, da dies Wissen über die tatsächliche Reihenfolge voraussetzen würde. Deswegen entstanden über die Jahrzehnte zahlreiche Ansätze, den pivot klugerweise zu bestimmen. Im Code zuunterst wird der Lomuto Partitionierung Algorithmus angewandt, weil er am leichtesten zu implementieren ist.
  2. Zunächst werden alle Werte kleiner als der pivot auf deren linke Seite und die die grösser sind auf deren rechte Seite verschoben.
  3. Nun wird der 1. und 2. Schritt den linken und rechten Wertgruppierungen angewendet, bis ein einziges Element in der eingeschränkten Liste übrig bleibt.

Das untenstehende Grafik illustriert dieser Vorgang bildlich an einem Praxisbeispiel.

Quelle: https://www.techiedelight.com/wp-content/uploads/Quicksort.png

Als Code

Die folgende Codezeilen legen den Quicksort in Java dar:

{
    
    {
         10, 7, 8, 9, 1, 5};
 
        
        01);
 
         ( 0
            );
        }
    }
 
    
    {
        
         1);
         (
        {
            
            {
                
                
                
                
            }
        }
 
         1];
        1
        
 
         1;
    }
 
    
    {
        
        {
            
 
            1);
            1
        }
    }
}

Quelle: https://www.geeksforgeeks.org/java-program-for-quicksort/