Hallo!
Ich arbeite gerade an einen Heapsort-Algorithmus. Doch irgendwie will es nicht so wie es soll.
Ich benutze 2 Prozeduren. Die eine ist sozusagen eine Teilprozedur von Heapsort, nämlich diese:
Delphi-Quellcode:
procedure HeapBauen (VAR Feld:TFeld;
links, rechts:integer);
var
oben,unten,lager:integer;
ready:boolean;
begin
ready:=false;
oben:=links;
unten:=2*oben;
lager:=feld[oben];
while (unten<=rechts) and not ready do
begin
if unten<rechts then
begin
if feld[unten+1]<feld[unten] then
begin
unten:=unten+1;
end;
end;
if lager>feld[unten] then
begin
feld[oben]:=feld[unten];
oben:=unten;
unten:=2*oben;
end
else ready:=true
end;
feld[oben]:=lager;
end;
Die "Hauptprozedur" greift auf diese zu und sollte das Feld sortieren. Doch es will einfach nicht...
Delphi-Quellcode:
procedure heapen(var Feld:TFeld);
var
i:integer;
begin
for i:= ((anzahl DIV 2)-1) downto 1 do HeapBauen(Feld,1,Anzahl);
end;
Kann mir jmd. helfen? Ich steh grad auf'n Schlauch