Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#4

Re: Heapsort funktioniert nicht

  Alt 18. Mai 2008, 20:22
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
  Mit Zitat antworten Zitat