Einzelnen Beitrag anzeigen

Caspar
(Gast)

n/a Beiträge
 
#1

Hab ein Stack Overflow, wenn ich mein Quicksort ausprobiere :(

  Alt 8. Sep 2017, 18:13
Hey, ich bin relativ neu auf dem Forum, also seid ein wenig nachsichtig

Ich habe ein kleines Sortierprogramm geschrieben und habe ein klein Stack-Overflow, wenn ich auf den Knopf drücke.
ich habe ein String Grid, wo auf der einen Seite die Zufälligen Zahlen stehen und auf der anderen Seite die Sortierten.

Hier mein Code:

Code:
procedure Quicksort(l,r: Integer);
  var
    i,j,Mitte,Merke: Integer;

  begin
    i:=0;
    j:=999;
   Mitte:=Zahl[(0+999) div 2];
    repeat
      while Zahl[i]<Mitte do Inc(i);

      while Mitte<Zahl[j] do Dec(j);

      if i<=j then
        begin
          Merke:=Zahl[i];
          Zahl[i]:=Zahl[j];
          Zahl[j]:=Merke;
          Inc(i);
          Dec(j);
        end;
    until i>j;
    if 0<j then Quicksort(0,j);

    if i<999 then Quicksort(i,999);

  end;


 procedure TForm1.Button5Click(Sender: TObject);
 var a:integer;
begin
   Quicksort(0,999) ;

   For a:=0 to 999 do
 begin
  StringGrid1.Cells[1,a] := inttostr(Zahl[a]);
 end;


end;
Als Globale Variable habe ich "Zahl" als Array von 0 bis 999.

Zahl : Array[0..999] of Integer;


Ich bin noch recht unerfahren in Delphi, also bitte es leicht erklären

Geändert von Caspar ( 8. Sep 2017 um 18:15 Uhr)
  Mit Zitat antworten Zitat