|
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