|
Hauptseite - Welches System? - Hardware - Software - Emulatoren - |
Internet MausNet Programmieren Verweise Über |
Die folgenden Beispiele zeigen das Sortieren von Feldern mittels Insertsort.
Sprache | C | Pascal | Modula |
---|---|---|---|
Beispiel | inssort.c | inssort.pas | inssort.mod |
/* Sortieren durch Einsetzen in schon sortierten Teil einer */ /* Liste. Da der Datentyp erst bei einer konkreten Anwndung */ /* feststeht, ist der Sortieralgorithmus nur als Beispiel */ /* und nicht als Modul programmiert. */ #define MAX_SORT_ELT 8000 typedef long SortKeyType; typedef SortKeyType SortKeyArray[MAX_SORT_ELT]; void SortEinsetzen(SortKeyArray Feld, int Anz) { int i, j, Test; SortKeyType Help; for (i=1; i
inssort.pas
(* Sortieren durch Einsetzen in schon sortierten Teil einer *) (* Liste. Da der Datentyp erst bei einer konkreten Anwndung *) (* feststeht, ist der Sortieralgorithmus nur als Beispiel *) (* und nicht als Modul programmiert. *) const MaxSortElt = 8000; type SortKeyType = long_integer; SortKeyArray = array[1..MaxSortElt] of SortKeyType; procedure SortEinsetzen(var Feld:SortKeyArray; Anz:integer); var i, j : integer; Help : SortKeyType; Test : boolean; begin for i:=2 to Anz do begin j := i; Help := Feld[i]; Test := false; repeat if (Feld[j-1] <= Help) then begin Test := true; end else begin Feld[j] := Feld[j-1]; j := j-1; if (j <= 1) then begin Test:=true; end; end> j) then begin Feld[j] := Help; end; end; end;
inssort.mod
(* Sortieren durch Einsetzen in schon sortierten Teil einer *) (* Liste. Da der Datentyp erst bei einer konkreten Anwndung *) (* feststeht, ist der Sortieralgorithmus nur als Beispiel *) (* und nicht als Modul programmiert. *) CONST MaxSortElt = 8000; TYPE SortKeyType = LONGINT; SortKeyArray = ARRAY[1..MaxSortElt] OF SortKeyType; PROCEDURE SortEinsetzen(VAR Feld:SortKeyArray; Anz:CARDINAL); VAR i, j : CARDINAL; Help : SortKeyType; Test : BOOLEAN; BEGIN FOR i:=2 TO Anz DO j := i; Help := Feld[i]; Test := FALSE; REPEAT IF (Feld[j-1] <= Help) THEN Test := TRUE; ELSE Feld[j] := Feld[j-1]; j := j-1; IF (j <= 1) THEN Test:=TRUE; END; END; UNTIL Test; IF (i <> j) THEN Feld[j] := Help; END; END; END SortEinsetzen;
English version not yet available.
Änderungen und Irrtümer vorbehalten. Letzte Änderung:
14 September 2001.
Home - Mail an den Webmaster - Impressum