home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1990-01-10 | 1.4 KB | 36 lines |
- (**********************************************************)
- (* Modula-Kurs Teil 6 *)
- (* (C) Peter Viczena & toolbox 1990 *)
- (**********************************************************)
-
- DEFINITION MODULE SortMerg; (* hier für TopSpeed-M2 *)
-
- FROM SYSTEM IMPORT ADDRESS;
- (* FROM Strings IMPORT Less,Equal,Greater; *)
- CONST Less = -1; (* evtl. ändern *)
- Equal = 0;
- Greater = 1;
-
- TYPE Ptr = ADDRESS;
- CompareResult = [Less..Greater];
- CProc = PROCEDURE(Ptr,Ptr):CompareResult;
-
- PROCEDURE PointerQuickSort(VAR a: ARRAY OF Ptr;
- n: INTEGER; CompP : CProc);
-
- (* Die Prozedur PointerQuickSort ist eine allgemeine
- Sortierroutine zum Sortieren beliebiger Daten. Die Pa-
- rameter sind:
- a: Ein ARRAY von anonymen Pointern, die auf die zu sor-
- tierenden Daten zeigt. Als Ausgabe sind alle ARRAY Ele-
- mente so geordnet, daß a[n]^, a[n+1]^ in aufsteigender
- Reihenfolge entsprechend der Vergleichsoperation CompP
- geordnet sind.
- n: Die Anzahl der zu sortierenden Elemente.
- CompP: Eine Prozedur, die zwei anonyme Pointer als Argu-
- ment hat, und jeweils entscheidet, ob der Inhalt des er-
- sten größer (Greater), kleiner (Less) oder gleich (Equal)
- ist. *)
-
- END SortMerg.