Sers Leute,
bin gerade dabei Auswahlsort zu "programmieren". Es sollen Balken angeordnet werden unzwar vom kleinsten oben bis zum größten unten. Nur klappt es überhaupt nicht obwohl ich die ganze Zeit denke, dass der Code richtig ist. Vielleicht könnt Ihr mir sagen was an dem Code nicht stimmt?
So werden die Balken gezeichnet, die dann zu sortieren sind ...
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
begin
PaintBox3.Repaint;
index := BalkenZahl;
yps := 1;
For i := 1 To BalkenZahl Do
Begin
Application.Processmessages;
PaintBox3.Canvas.Pen.Color := CLBlue;
PaintBox3.Canvas.Rectangle(1, yps, index, yps+1);
sleep(TrackBar1.Position);
recsize2[index] := index;
x2[index] := 1;
y2[index] := yps;
index := index-1;
yps := yps+2;
End;
end;
So werden die Balken sortiert ...
Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject);
Var
min : integer;
begin
Start := GetTickCount;
tausch2 := 0;
For i := 1 To BalkenZahl - 1 Do
Begin
min := recsize2[i];
Application.Processmessages;
For j := i + 1 To BalkenZahl Do
Begin
Application.Processmessages;
If recsize2[min] < recsize2[j] Then
Begin
min := j;
End;
End;
If recsize2[min] <> recsize2[i] Then
Begin
PaintBox3.Canvas.Pen.Color := CLRed;
PaintBox3.Canvas.Rectangle(1, y2[i], recsize2[i], y2[i]+1);
PaintBox3.Canvas.Pen.Color := CLRed;
PaintBox3.Canvas.Rectangle(1, y2[min], recsize2[min], y2[min]+1);
sleep(TrackBar1.Position);
PaintBox3.Canvas.Pen.Color := ClBtnFace;
PaintBox3.Canvas.Rectangle(1, y2[i], recsize2[i], y2[i]+1);
PaintBox3.Canvas.Pen.Color := ClBtnFace;
PaintBox3.Canvas.Rectangle(1, y2[min], recsize2[min], y2[min]+1);
temp2 := recsize2[i];
recsize2[i] := recsize2[min];
recsize2[min] := temp2;
tausch2 := tausch2 + 1;
PaintBox3.Canvas.Pen.Color := CLBlue;
PaintBox3.Canvas.Rectangle(1, y2[i], recsize2[i], y2[i]+1);
PaintBox3.Canvas.Pen.Color := CLBlue;
PaintBox3.Canvas.Rectangle(1, y2[min], recsize2[min], y2[min]+1);
sleep(TrackBar1.Position);
Edit5.Text := IntToStr(tausch2);
End;
End;
Edit7.Text := IntToStr(GetTickCount - Start);
end;