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)


Anmelden zum Antworten