Zurück Vor +Ebene Home Inhalt Index Hilfe

Quick-Sort

Quick-Sort, sehr schneller Algorithmus. Laufzeit . Die zu sortierenden Daten werden in zwei möglichst gleich große Gruppen aufgeteilt, so daß alle Elemente der ersten Gruppe kleiner sind als alle Elemente der zweiten Gruppe. Nun wird rekursiv jede dieser Gruppen für sich sortiert. Werden die sortierten Gruppen wieder aneinander gehängt, so sind alle Daten sortiert.
 
    PROCEDURE quicksort(anfang,ende: integer;
    VAR a: sortfeld); 
    VAR i,j,x: integer; 
    BEGIN
       i:=anfang; j:=ende; 
       x:=a[(anfang+ende) DIV 2]; (* trennt die Gruppen *) 
       REPEAT 
           WHILE a[i]<x DO i:=i+1; 
            (* grosses Element suchen *)
           WHILE a[j]>x DO j:=j-1;  
            (* kleines Element suchen *)
           IF i<=j THEN BEGIN   
               swap(a[i],a[j]); 
               i:=i+1; j:=j-1; }
           END;
       UNTIL i>j;
       IF anfang<j THEN quicksort(anfang,j,a);
       IF i<ende THEN quicksort(i,ende,a);
    END;

Zurück Vor +Ebene Home Inhalt Index Hilfe

Copyright Verlag Harri Deutsch AG  Stöcker DeskTop Mathematik