Partitionierungsverfahren II

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

QuickSort.om
PROCEDURE Exchange(i, j: INTEGER; VAR pivot: INTEGER);
   (* update the index of the pivot element if necessary *)
BEGIN
   exchange(i, j);
   IF pivot = i THEN
      pivot := j;
   ELSIF pivot = j THEN
      pivot := i;
   END;
END Exchange;

*Wenn ein Austausch stattfindet, der den Index des Pivot-Elements betrifft, muß dieser aktualisiert werden.
 
*Andernfalls kommt es implizit zu einem Wechsel des Pivot-Elements.
 
*Dies wäre harmlos, wenn zu Beginn pivot dem Wert von first gleichen würde. Bei jeder anderen Wahl könnte das jedoch fatal sein.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005