Atari Logo
Atari Computer

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

Beispiel: Bubblesort mit Erkennung eines sortierten Feldes

Die folgenden Beispiele zeigen das Sortieren von Feldern mittels Bubblesort. Der Algorithmus erkennt ein sortiertes Feld und beendet in diesem Fall die Sortierung.

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


bub2sort.c

/* Sortieren mit Bubblesort und Erkennung eines bereits sortier- */
/* ten Felds. Da der Datentyp erst bei einer konkreten Anwendung *7
/* 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 SortBubblesort2(SortKeyArray Feld, int Anz)
{  int i, j, Flag;
   SortKeyType Help;

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

bub2sort.pas

(* Sortieren mit Bubblesort und Erkennung eines bereits sortier- *)
(* ten Felds. Da der Datentyp erst bei einer konkreten 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 SortBubblesort2(var Feld:SortKeyArray; Anz:integer);
var
   i, j : integer;
   Help : SortKeyType;
   Flag : boolean;
begin
   i := 1;
   Flag := false;
   while (i Feld[j] then
         begin
            Flag := false;
            Help := Feld[j-1];
            Feld[j-1] := Feld[j];
            Feld[j] := Help;
         end;
      i := i+1;
   end;
end;

bub2sort.mod

(* Sortieren mit Bubblesort und Erkennung eines bereits sortier- *)
(* ten Felds. Da der Datentyp erst bei einer konkreten 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 SortBubblesort2(VAR Feld:SortKeyArray; Anz:CARDINAL);
VAR
   i, j : CARDINAL;
   Help : SortKeyType;
   Flag : BOOLEAN;
BEGIN
   i := 1;
   Flag := FALSE;
   WHILE (iFeld[j] THEN
            Flag := FALSE;
            Help := Feld[j-1];
            Feld[j-1] := Feld[j];
            Feld[j] := Help;
         END;
      END;
      i := i+1;
   END;
END SortBubblesort2;


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