Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Delphi / Kylix / Turbo Pascal » Erklärung - Heapsort

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.07.2005, 14:06 Uhr
~Janine
Gast


Hallo !

Ich hätte eine Frage zu folgender Prozedur.
Wieso gibt es die Zeile if (j < R) and (f(j+1) > f(j)) then inc(j); zweimal und was bedeutet sie ?


Code:

PROCEDURE sift (VAR f : tfeld; L,R : integer);
VAR
  j : integer;
  x : Byte;
begin
  i := L;
  j := 2*L;
  x := f(i);
  if (j < R) and (f(j+1) > f(j)) then inc(j);
  while (j <= R) and (f(j) > x) do
    begin
      f(i) := f(j);
      i := j;
      j := j*2;
        if (j < R) and (f(j+1) > f(j)) then inc(j);
    end;
  f(i) := x;
end;




Vielen Dank und viele Grüße !
Janine
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.07.2005, 15:07 Uhr
Reyx
IT-fetischistischer Wurstsalat mit rostigem Berghorn
(Operator)


Das heißt, würde ich sagen,
Wenn j kleiner als R ist und der Funktionswert f(j+1) größer ist als der Funktionswert f(j), dann führe die Funktion inc(j) aus (inc()? Könnte für inkrementieren stehen... also J um eins erhöhen).

Und warum es sie zweimal gibt... keine Ahnung, dafür müsste ich jetzt die Prozedur analysieren... das erste mal wird wohl sichergestellt, dass sie einen Wert aus einem bestimmten Mengenbereich enthält, und beim zweiten Mal... wascheinlich auch so etwas in der Art...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.09.2005, 14:23 Uhr
virtual
Sexiest Bit alive
(Operator)


Es handelt sich um die Prozedur des "einsinken lassens" in einen Heap. f ist ein in ein Array eingebetteter binärer Suchbaum, in welchem das Element von der Wurzel soweit einsinkt, bis es nicht mehr weiter geht.
Vielleicht hilft Dir eine Erklärung von meiner HP weiter, allerdings habe ich da zur Implementierung C++ benutzt.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Delphi / Kylix / Turbo Pascal ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: