Читать книгу Algorithmen und Datenstrukturen - Gunter Saake - Страница 97
Beispiel 3.20 Fibonacci-Zahlen
ОглавлениеDer folgende Algorithmus zeigt eine imperative Umsetzung der Fibonacci-Zahlen.
F IB: | varX,A,B,C:int; |
inputX; | |
A:=1,B:=1; | |
whileX>0 do | |
C:=A+B;A:=B;B:=C;X:=X-1od | |
outputA |
Die Bedeutung des Algorithmus, in der auch der Definitionsbereich der partiellen Funktion festgelegt wird, ist wie folgt:
Der Vergleich mit der applikativen Realisierung in Beispiel 3.7 auf Seite 64 zeigt die unterschiedliche Vorgehensweise: Zwei Variablen werden genutzt, um jeweils die zwei letzten berechneten Fibonacci-Zahlen zwischenzuspeichern. Diese Verfahren ist effizienter als der doppelte rekursive Aufruf des applikativen Algorithmus.
Die Frage der Effizienz von imperativen Algorithmen spielt auch im nächsten Beispiel eine Rolle, in dem ein weiterer »Klassiker« der Algorithmenbeispiele realisiert wird.