Lernpfad:Rekursion in Java/Aufrufbaum: Unterschied zwischen den Versionen
Jneug (Diskussion | Beiträge) |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 12: | Zeile 12: | ||
Mathematisch ausgedrückt: | Mathematisch ausgedrückt: | ||
* <math> | * <math>f(n) = f(n-2)+f(n-1)</math> für <math>n>1</math> | ||
* <math> | * <math>f(n) = n</math> für <math>n<2</math> | ||
<syntaxhighlight lang="java" line="1" > | <syntaxhighlight lang="java" line="1" > | ||
public int | public int f(n) { | ||
if(n > 1) { | if(n > 1) { | ||
return | return f(n-2) + f(n-1); | ||
} else { | } else { | ||
return 1; | return 1; |
Version vom 28. Januar 2020, 22:48 Uhr
Der Aufrufbaum
Durch einen Aufrufbaum wird die schrittweise Lösung eines Problems dargestellt. Im Aufrufbaum werden die Parameter und die Rückgaben der Methode visualisiert. Gerade bei Methoden mit mehreren rekursiven Aufrufen verdeutlicht der Aufrufbaum die Ausführung.
Das Pascalsche Dreieck kann rekursiv berechnet werden, die jeweils oberhalb liegenden Felder werden addiert und ergeben das darunter liegende Feld (vgl. Animation rechts).
Der untere Aufrufbaum verdeutlicht die Berechnungen, die für die vierte Zeile und die dritte Spalte des Pascalschen Dreiecks benötigt werden:
Eine Fibonacci-Zahl wird durch die Summe der zwei vorherigen Fibonacci-Zahlen gebildet.
Mathematisch ausgedrückt:
- [math]\displaystyle{ f(n) = f(n-2)+f(n-1) }[/math] für [math]\displaystyle{ n\gt 1 }[/math]
- [math]\displaystyle{ f(n) = n }[/math] für [math]\displaystyle{ n\lt 2 }[/math]
public int f(n) {
if(n > 1) {
return f(n-2) + f(n-1);
} else {
return 1;
}
}
Notieren Sie den Aufrufbaum des Methodenaufrufs [math]\displaystyle{ f(4) }[/math].