Ich danke euch alle für eure schnelle Hilfe!
Es ging darum eine interative und eine rekursive Methode von der Art der Berechnung von der Fibonacci-Folge zu vergleichen.
Vorgegebene iterative Methode:
Delphi-Quellcode:
function fib_it (pZahl: integer): integer;
var
lAktuell, lVorgaenger1, lVorgaenger2, lZaehl: integer;
begin
lAktuell := 1;
if (pZahl > 2) then begin
lVorgaenger1 := 1;
for lZaehl := 3 to pZahl do begin
lVorgaenger2 := lVorgaenger1;
lVorgaenger1 := lAktuell;
lAktuell := lVorgaenger1 + lVorgaenger2;
end; {*for*}
end; {* if *}
result := lAktuell;
end;
Meine (korrigierte) rekursive Funktion:
Delphi-Quellcode:
function fib_rek(pZahl:Integer):Integer;
begin
if pZahl < 3 Then Result := 1
Else Result := fib_rek((pZahl-1) + fib_rek(pZahl-2));
end;
Nun sollte die Effektivität verglichen werden.
Ich war der Auffassung, dass die iterative Methode effektiver arbeitet und habe dazu den oben genannten Satz geschrieben.
Ist die Aussage des Lehrers "so" immer noch suboptimal?