| 
 | 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