| 
 | Hauptseite - Welches System? - Hardware - Software - Emulatoren - | Internet MausNet Programmieren Verweise Über | 
Die folgenden Beispiele zeigen das Sortieren von Feldern mittels Auswahlsort.
| Sprache | C | Pascal | Modula | 
|---|---|---|---|
| Beispiel | auswsort.c | auswsort.pas | auswsort.mod | 
/* Sortieren mit direkter Auswahl des Minimums einer unsortier-  */
/* ten Teilliste. Da der Datentyp erst bei einer konkreten An-   */
/* wendung feststeht, ist der Sortieralgorithmus nur als Bei-    */
/* spiel und nicht als Modul programmiert.                       */
#define MAX_SORT_ELT 8000
typedef long SortKeyType;
typedef SortKeyType SortKeyArray[MAX_SORT_ELT];
void SortDirekteAuswahl(SortKeyArray Feld, int Anz)
{  int i,j,Min;
   SortKeyType Help;
   for (i=0; i<(Anz-1); i++)
   {
      Min = i;
      for (j=i+1; j
auswsort.pas
(* Sortieren mit direkter Auswahl des Minimums einer unsortier-  *)
(* ten Teilliste. Da der Datentyp erst bei einer konkreten An-   *)
(* wendung feststeht, ist der Sortieralgorithmus nur als Bei-    *)
(* spiel und nicht als Modul programmiert.                       *)
const
   MaxSortElt = 8000;
type
   SortKeyType = long_integer;
   SortKeyArray = array[1..MaxSortElt] of SortKeyType;
procedure SortDirekteAuswahl(var Feld:SortKeyArray; Anz:integer);
var
   i, j, Min : integer;
   Help : SortKeyType;
begin
   for i:=1 to (Anz-1) do
   begin
      Min := i;
      for j:=i+1 to Anz do
      begin
         if (Feld[j] < Feld[Min]) then
         begin
            Min := j;
         end;
      end;
      Help := Feld[i];
      Feld[i] := Feld[Min];
      Feld[Min] := Help;
   end;
end;
auswsort.mod
(* Sortieren mit direkter Auswahl des Minimums einer unsortier-  *)
(* ten Teilliste. Da der Datentyp erst bei einer konkreten An-   *)
(* wendung feststeht, ist der Sortieralgorithmus nur als Bei-    *)
(* spiel und nicht als Modul programmiert.                       *)
CONST
   MaxSortElt = 8000;
TYPE
   SortKeyType = LONGINT;
   SortKeyArray = ARRAY[1..MaxSortElt] OF SortKeyType;
PROCEDURE SortDirekteAuswahl(VAR Feld:SortKeyArray; Anz:CARDINAL);
VAR
   i, j, Min : CARDINAL;
   Help : SortKeyType;
BEGIN
   FOR i:=1 TO (Anz-1) DO
      Min := i;
      FOR j:=i+1 TO Anz DO
         IF (Feld[j] < Feld[Min]) THEN
            Min := j;
         END;
      END;
      Help := Feld[i];
      Feld[i] := Feld[Min];
      Feld[Min] := Help;
   END;
END DirekteAuswahl;
 
  
   
    
   
   
  
   English version not yet available.
   
  
Änderungen und Irrtümer vorbehalten. Letzte Änderung:
14 September 2001.
Home -
Mail an den Webmaster -
Impressum