ok habe einen fehler gefunden. es läuft jetzt.
Habe nur ein problem des speichers, da der arbeitspeicher voll sein soll - oder ich habe einen stack-überlauf - wie bekomme ich dies beseitigt? (rekursionsporblem??)
Delphi-Quellcode:
function tform1.bubblesort(var ar: arr):arr;
var i,c:int64;
begin
i:=1;
setlength(result,length(ar));
while i<length(ar) do
begin
if mathe.Vergleich(ar[i-1].numbers,ar[i].numbers)>0
then
begin
c:=ar[i-1].position;
ar[i-1].position:=ar[i].position;
ar[i].position:=c;
end;
i:=i+1;
end;
i:=0;
while i<length(ar) do
begin
//showmessage(inttostr(ar[i].position));
result[i]:=ar[ar[i].position];
i:=i+1;
end;
i:=0;
while i<length(result)-1 do
begin
if mathe.vergleich(result[i].numbers,result[i+1].numbers)>0
then
begin
//showmessage(inttostr(i));
result:=bubblesort(result);
i:=i+1;
end;
i:=i+1;
end;
end;
ich denke es wäre vlt besser, mit verketteten listen und zeigern zu arbeiten,(ich hoffe, da hab ich dann kein speicherproblem mehr?) das mit dem array ist nur eine übergangslösung.