Hallo Leute.
Ich programmiere gerade ein Programm, welches zufällige Zahlen sortieren soll.
Bis jetzt hab ich BubbleSort und SelectionSort, bzw. ich meinte SelectionSort zu haben.
Vor kurzem habe ich jedoch folgenden Bug gefunden:
Bei erstem Hinsehen meint man, dass er korrekt sortiert hat, nur taucht ab und zu eine Zahl auf die nicht hingehört, also eine kleine Zahl, wo egtl. eine große stehen soll.
Hier ist der Code für die SelectionSort Prozedur
Delphi-Quellcode:
procedure TForm1.B_SelectionSortClick(Sender: TObject);
var i, j:longint;
var min:longint;
begin
M_1.Clear;
swapi := 0;
for i:=1 to amount do begin
min := i;
for j:=i+1 to amount do begin
if numbers[j] < numbers[min] then begin
min := j;
end;
swapvals(numbers[min], numbers[i]);
end;
end;
for i:=1 to amount do
M_1.Lines.Add(IntToStr(i)+': '+IntToStr(numbers[i]));
L_vergleichei.Caption := IntToStr(swapi);
end;
Die Prozedur swapvals()
Delphi-Quellcode:
procedure swapvals(var val1, val2:longint);
var buff:longint;
begin
buff := val1;
val1 := val2;
val2 := buff;
inc(swapi);
end;
Globale Variablen
Delphi-Quellcode:
var
Form1: TForm1;
numbers :array [1..amount] of LongInt;
swapi: longint = 0;
Ich hoffe mir kann geholfen werden.
Ggf. kann ich ja die .exe zum Download freigeben, falls meine Fehlerbeschreibung nicht sehr aufschlussreich ist.
Danke.
PS: Ich weiss nicht ob Delphi 7 Delphi.NET oder Delphi
Win32 ist ...