home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1987-04-14 | 3.2 KB | 65 lines |
-
- DEFINITION MODULE Sorting;
-
- (*************************************************************************
- | |
- | Der Modul "Sorting" stellt vier Sortierverfahren zur Verfügung: |
- | |
- | - BubbleSort, ShellSort, QuickSort, IndexSort |
- | |
- | Die ersten drei Routinen besitzen die gleiche Parameterliste, |
- | in "SortArray" sind die zu sortierenden Daten gespeichert, es |
- | wird sortiert von SortArray[first] bis einschließlich Sort- |
- | Array[last], die boolesche Funktion "Lower" stellt einen zum |
- | Sortieren notwendigen Vergleich (a<b ?) zwischen zwei Elementen |
- | zur Verfügung; die Implementation dieser Funktion steht dem Be- |
- | nutzer allerdings vollkommen frei, so das die vielfältigsten |
- | Möglichkeiten zur Sortierung gegeben sind. "Ascending" sagt |
- | schließlich, ob die Daten in aufsteigender (Ascending=TRUE) |
- | oder absteigender (Ascending=FALSE) Reihenfolge sortiert werden |
- | sollen. |
- | Bei IndexSort kommt noch ein weiterer Parameter dazu, das Feld |
- | "Index", welches die vertauschbaren Indizes bereitstellt. "In- |
- | dex" wird automatisch von "IndexSort" initialisiert, nach er- |
- | folgter Sortierung kann über SortArray[Index[k]] auf die k-te |
- | Komponente des sortierten Feldes zugegriffen werden. |
- | |
- *************************************************************************)
-
- FROM SYSTEM IMPORT STRING;
-
- EXPORT QUALIFIED BubbleSort, IndexSort, QuickSort, ShellSort, SortType;
-
-
- TYPE SortType = RECORD
- Name : STRING[25];
- Birthday : STRING[15];
- Salary : CARDINAL;
- END;
-
- Comparison = PROCEDURE (VAR SortType, VAR SortType) : BOOLEAN;
-
-
- PROCEDURE BubbleSort (VAR SortArray : ARRAY OF SortType;
- first,last : CARDINAL;
- Lower : Comparison;
- Ascending : BOOLEAN);
-
- PROCEDURE ShellSort (VAR SortArray : ARRAY OF SortType;
- first,last : CARDINAL;
- Lower : Comparison;
- Ascending : BOOLEAN);
-
- PROCEDURE QuickSort (VAR SortArray : ARRAY OF SortType;
- first,last : CARDINAL;
- Lower : Comparison;
- Ascending : BOOLEAN);
-
- PROCEDURE IndexSort (VAR SortArray : ARRAY OF SortType;
- VAR Index : ARRAY OF CARDINAL;
- first,last : CARDINAL;
- Lower : Comparison;
- Ascending : BOOLEAN);
-
- END Sorting.