|
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