home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1987 / 10 / sort_mod / sorting.def < prev    next >
Encoding:
Modula Definition  |  1987-04-14  |  3.2 KB  |  65 lines

  1.  
  2. DEFINITION MODULE Sorting;
  3.  
  4.   (*************************************************************************
  5.    |                                                                       |
  6.    |    Der Modul "Sorting" stellt vier Sortierverfahren zur Verfügung:    |
  7.    |                                                                       |
  8.    |           -  BubbleSort, ShellSort, QuickSort, IndexSort              |
  9.    |                                                                       |
  10.    |    Die ersten drei Routinen  besitzen die gleiche  Parameterliste,    |
  11.    |    in "SortArray" sind die zu  sortierenden Daten gespeichert,  es    |
  12.    |    wird  sortiert von  SortArray[first]  bis  einschließlich Sort-    |
  13.    |    Array[last],  die boolesche Funktion  "Lower"  stellt einen zum    |
  14.    |    Sortieren notwendigen Vergleich (a<b ?) zwischen zwei Elementen    |
  15.    |    zur Verfügung; die Implementation dieser Funktion steht dem Be-    |
  16.    |    nutzer allerdings vollkommen frei,   so das die  vielfältigsten    |
  17.    |    Möglichkeiten  zur  Sortierung gegeben sind.   "Ascending" sagt    |
  18.    |    schließlich,   ob die Daten in  aufsteigender  (Ascending=TRUE)    |
  19.    |    oder absteigender (Ascending=FALSE) Reihenfolge sortiert werden    |
  20.    |    sollen.                                                            |
  21.    |    Bei IndexSort kommt noch ein weiterer Parameter dazu, das Feld     |
  22.    |    "Index", welches die vertauschbaren Indizes bereitstellt. "In-     |
  23.    |    dex" wird automatisch von "IndexSort" initialisiert, nach  er-     |
  24.    |    folgter Sortierung kann über  SortArray[Index[k]] auf die k-te     |
  25.    |    Komponente des sortierten Feldes zugegriffen werden.               |
  26.    |                                                                       |
  27.    *************************************************************************)
  28.  
  29.   FROM SYSTEM IMPORT STRING;
  30.  
  31.   EXPORT QUALIFIED BubbleSort, IndexSort, QuickSort, ShellSort, SortType;
  32.  
  33.  
  34.   TYPE SortType   = RECORD
  35.                       Name     : STRING[25];
  36.                       Birthday : STRING[15];
  37.                       Salary   : CARDINAL;
  38.                     END;
  39.  
  40.        Comparison = PROCEDURE (VAR SortType, VAR SortType) : BOOLEAN;
  41.  
  42.  
  43.   PROCEDURE BubbleSort (VAR SortArray  : ARRAY OF SortType;
  44.                             first,last : CARDINAL;
  45.                             Lower      : Comparison;
  46.                             Ascending  : BOOLEAN);
  47.  
  48.   PROCEDURE ShellSort  (VAR SortArray  : ARRAY OF SortType;
  49.                             first,last : CARDINAL;
  50.                             Lower      : Comparison;
  51.                             Ascending  : BOOLEAN);
  52.  
  53.   PROCEDURE QuickSort  (VAR SortArray  : ARRAY OF SortType;
  54.                             first,last : CARDINAL;
  55.                             Lower      : Comparison;
  56.                             Ascending  : BOOLEAN);
  57.  
  58.   PROCEDURE IndexSort  (VAR SortArray  : ARRAY OF SortType;
  59.                         VAR Index      : ARRAY OF CARDINAL;
  60.                             first,last : CARDINAL;
  61.                             Lower      : Comparison;
  62.                             Ascending  : BOOLEAN);
  63.  
  64.   END Sorting.
  65.