Zitat von
spox:
funktioniert leider nicht. Das Feld wird nicht sortiert. Eine Tauschprozedur hatte ich schon, weshalb ich diese verwenden konnte.
Ich gehe davon aus, daß TFeld ein array of integer ist. Wenn heapen wie folgt geändert wird, funktionsierts bei mir.
Delphi-Quellcode:
procedure heapen(var Feld:TFeld);
var
i: integer;
t: integer;
begin
for i:= (anzahl DIV 2) downto 1 do HeapBauen(Feld,i,Anzahl);
for i:= anzahl downto 2 do begin
t := Feld[1];
Feld[1] := Feld[i];
Feld[i] := t;
HeapBauen(Feld,1,i-1);
end;
end;
Unsortiert
1 4 87 21 28 68 32 17 38 43 9 48 8 85 6
Sortiert
87 85 68 48 43 38 32 28 21 17 9 8 6 4 1
Gruß Gammtester