Atari Logo
Atari Computer

Hauptseite -
Welches System? -
Hardware -
Software -
Emulatoren -
Internet
MausNet
Programmieren
Verweise
Über

Beispiel: Auswahlsort

Die folgenden Beispiele zeigen das Sortieren von Feldern mittels Auswahlsort.

Sprache C Pascal Modula
Beispiel auswsort.c auswsort.pas auswsort.mod


auswsort.c

/* 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;


Best viewed with any browser English version not yet available.

Änderungen und Irrtümer vorbehalten. Letzte Änderung:
14 September 2001.
Home - Mail an den Webmaster - Impressum