Patrick Kamin
Erfahrenes Mitglied
Moin Freunde des logischen Denkens!
Musste gerade für ein Programm in der Uni den Bubblesort Algorithmus etwas modifizieren. Mein Problem ist, dass er funktioniert. Das Array wird sortiert, nur leider zu schnell. Hab noch ne Schleife drum, damit ich für Zeitmessungen ein vernünftiges Ergebnis in Millisekunden bekomme. Vielleicht könnte ihr mal gucken, wo irgendwo was unstimmig ist.
Das Ganze flutscht unter TP6.
Elemente = Elemente im Array
Durchlauf = Schleifendurchläufe
KopieArray = Bei sortiertem Array, wird wieder das unsortierte Array genommen.
Danke schonmal im vorraus.
Musste gerade für ein Programm in der Uni den Bubblesort Algorithmus etwas modifizieren. Mein Problem ist, dass er funktioniert. Das Array wird sortiert, nur leider zu schnell. Hab noch ne Schleife drum, damit ich für Zeitmessungen ein vernünftiges Ergebnis in Millisekunden bekomme. Vielleicht könnte ihr mal gucken, wo irgendwo was unstimmig ist.
Code:
Procedure BubbleSort( Elemente : Word; KopieArray : TArray; var ErgebnisArray : TArray);
Var
Marke, i, MarkeTemp,h : Word;
MarkeFlag : Boolean;
SArray : TArray;
Begin
for h := 1 to Durchlauf do
SArray := KopieArray;
Begin<-
Marke := 1;
repeat
MarkeFlag := True;
i := Elemente;
while i > Marke do
Begin
if SArray[i-1] > SArray[i] then
Begin
MarkeTemp := SArray[i];
SArray[i] := SArray[i-1];
SArray[i-1] := MarkeTemp;
MarkeFlag := False;
MarkeTemp := i;
End;
dec(i);
End;
Marke := MarkeTemp;
until MarkeFlag;
End;
ErgebnisArray := SArray;
End;
Elemente = Elemente im Array
Durchlauf = Schleifendurchläufe
KopieArray = Bei sortiertem Array, wird wieder das unsortierte Array genommen.
Danke schonmal im vorraus.
Zuletzt bearbeitet: