Sortieralgorithmus Bubblesort funktioniert nicht richtig in Delphi
-
Hallo allerseits ich habe folgenden code
procedure Tfrm_bubblesort.Button1Click(Sender: TObject); var i, j, n, hilf: integer; var a: array[0..99] of integer; begin n := Memo1.Lines.Count-1; for i:=0 to n do begin a[i] := StrToInt(Memo1.Lines[i]); end; for i:=2 to n do begin for j:=n to i do begin if(a[j-1] > a[j]) then begin hilf := a[j-1]; a[j-1] := a[j]; a[j] := hilf; end; end; end; for i:=0 to n do begin ListBox1.Items[i] := IntToStr(a[i]); end; end;
jedoch sortiert der Falsch ist es vielleicht nur ein Denkfehler oder was anderes danke für die Hilfe
-
Deine erste Schleife sollte von 1 an laufen und deine innere Schleife wird bisher fast nie durchlaufen, da n fast immer größer als i ist (bis auf i=n), d.h. entweder 'downto' verwenden oder aber i und n vertauschen.
Und außerdem hast du keinen richtigen Bubblesort-Algorithmus (s.a http://de.wikipedia.org/wiki/Bubblesort), sondern eher Simple-Sort (http://de.wikipedia.org/wiki/Simplesort)