Atari Logo
Atari Computer

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

Beispiel: Bubblesort

Die folgenden Beispiele zeigen das Sortieren von Feldern mittels Bubblesort.

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


bub1sort.c

/* Sortieren mit Bubblesort. Da der Datentyp erst bei einer kon- */
/* kreten Anwendung 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 SortBubblesort1(SortKeyArray Feld, int Anz)
{  int i,j;
   SortKeyType Help;

   for (i=0; ii; j--)
         if (Feld[j-1] > Feld[j])
         {
            Help = Feld[j-1];
            Feld[j-1] = Feld[j];
            Feld[j] = Help;
         }
   }
}

bub1sort.pas

(* Sortieren mit Bubblesort. Da der Datentyp erst bei einer kon- *)
(* kreten Anwendung 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 SortBubblesort1(var Feld:SortKeyArray; Anz:integer);
var
   i, j : integer;
   Help : SortKeyType;
begin
   for i:=1 to Anz do
   begin
      for j:=Anz downto i+1 do
         if Feld[j-1] > Feld[j] then
         begin
            Help := Feld[j-1];
            Feld[j-1] := Feld[j];
            Feld[j] := Help;
         end;
   end;
end;

bub1sort.mod

(* Sortieren mit Bubblesort. Da der Datentyp erst bei einer kon- *)
(* kreten Anwendung 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 SortBubblesort1(VAR Feld:SortKeyArray; Anz:CARDINAL);
VAR
   i, j : CARDINAL;
   Help : SortKeyType;
BEGIN
   FOR i:=1 TO Anz DO
      FOR j:=Anz TO i+1 BY -1 DO
         IF Feld[j-1] > Feld[j] THEN
            Help := Feld[j-1];
            Feld[j-1] := Feld[j];
            Feld[j] := Help;
         END;
      END;
   END;
END SortBubblesort1;


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