Einzelnen Beitrag anzeigen

Benutzerbild von spox
spox

Registriert seit: 23. Sep 2007
47 Beiträge
 
Delphi 7 Personal
 
#1

Heapsort funktioniert nicht

  Alt 18. Mai 2008, 16:24
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
MfG,
spox
  Mit Zitat antworten Zitat