die variable b ist nur lokal für bubblesort - den hab cih einfach so geschireben, brauche ich durch qs jedoch nicht
Delphi-Quellcode:
procedure tform1.bubblesort;
var i,a,b,c:longint; //hier ist b doch deklariert
begin
i:=0;
while i<length(ar) do
begin
a:=ar[i];
b:=ar[i+1]; //und bekommt hier einen wert zugewiesen, um den tausch zu vollziehen
if a<=b
then i:=i+1
else
begin
{tauschen}
c:=a;
a:=b;
b:=c;
//neu zuweisen
ar[i]:=a;
ar[i+1]:=b;
i:=i+1;
end;
end;
i:=1;
while i<length(ar) do
begin
if ar[i-1]<=ar[i]
then i:=i+1
else bubblesort;
end;
i:=0;
memo1.Clear;
end;
im moment reicht die funtion mit dem array - ich hatte bereits versucht das array als parameter zu übergeben, damit ich beliebige array sortieren könnte, doch das hat die funtkion (umgeschirben) nicht gemocht. ich denke jedoch dass das nicht unbedingt notwendig ist - vlt später einmal
Zitat:
Was soll das? Willst Du da noch mal tauschen und hast eine Zeile vergessen? Lassen wird uns also nicht ablenken und drücken Run. Und bumm!
Range Check error in Zeile
repeat j := j-1 until pivot >= ar[j];
Was kann das wohl sein. Und wieso tritt das auf
wenn ich den code jetzt ausführe passiert nichts besonderes - er gibt das sortierte array ordnungsgemäß aus - geändert habe ich nichts