Zusammenfassung
Im Abschn. 1.1 haben wir den Algorithmus von Euklid sowohl iterativ wie auch rekursiv formuliert. Die Alternative ist typisch: Viele Aufgaben haben eine rekursive und eine iterative Lösung. In diesem Kapitel beschäftigen wir uns mit der Frage, wie weit die beiden Techniken austauschbar sind.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Die Begriffe Iteration , Wiederholung und Schleife sind Synonyme; sie können miteinander ausgetauscht werden.
- 2.
z. B. Prolog oder Logo; in gewissem Sinne auch XSLT.
- 3.
s. z. B. [Niev].
- 4.
Diese alternative, kompaktere Lösung ist aber etwas weniger gut lesbar.
- 5.
Gute Compiler können hier allerdings optimieren.
- 6.
Eine Reihung aus Ganzzahlen wird in Java mit 0 vorbesetzt.
- 7.
Benannt nach dem Mathematiker F. W. Ackermann, 1896–1962.
- 8.
Diese Methode funktioniert nur im Wertebereich von int korrekt. Der Austausch der Parametertypen und des Ergebnistyps auf long würde ihre Brauchbarkeit nur ein bisschen verbessern. Die Benutzung von java.math.BigDecimal-Objekten statt int-Variablen hebt diese Einschränkung auf, führt allerdings zu enormen Rechenzeitsteigerung.
- 9.
Bedingungsgesteuerte Schleife.
- 10.
Diese Gleichheit ist weder „flach“ noch „tief“, sondern eine „logische Gleichheit“; ebenso die nachfolgende Kopie.
- 11.
Der Jokertyp List<?> ist der abstrakte Obertyp aller List-Instanziierungen.
- 12.
static-Methoden können den Typparameter der generischen Klasse nicht benutzen; sie müssen selber als generische Methoden vereinbart werden.
- 13.
Schleifen, deren Durchlaufzahl beim Eintritt in die Schleife bekannt sind; in einigen Programmiersprachen wie Pascal (nicht in Java): for-Schleifen.
- 14.
Listen in den Standardklassen enthalten eine Methode size().
- 15.
&& ist die kurzgeschlossene Konjunktion: Der rechte Operand wird nur berechnet, wenn die Auswertung des linken Operanden true ergibt.
- 16.
Auf Englisch: call-back.
- 17.
Leider können Lambda-Ausdrücke keine geprüften Ausnahmen auswerfen, so muss VollAusnahme als Unterklasse von Error vereinbart werden.
- 18.
Fraktale sind geometrische Gebilde, deren Dimension keine Ganzzahl (wie 1, 2 oder 3), sondern eine Bruchzahl ist – wie z. B. bei einer Monsterkurve ca. 1,78 (eine irrationale Zahl).
- 19.
Auf Englisch: turtle graphics ; ein Online-Beispiel ist unter der Adresse http://kaminari.istc.kobe-u.ac.jp/java/logo/ zu finden.
- 20.
Manche nennen sie Sierpinski-Dreieck .
- 21.
Eine Annäherung ist in Abb. 3.6 zu sehen.
- 22.
Benannt nach David Hilbert (1862–1943), deutscher Mathematiker.
- 23.
Benannt nach Waclaw Sierpiński (1882–1969), polnischer Mathematiker.
- 24.
Hängt vom Java-Interpreter ab.
- 25.
Der Interpreter löst die Ausnahme StackOverflowErroraus, wenn die Anzahl der rekursiven Aufrufe (z. B. bei einer endlosen Rekursion) die Kapazität des Stapels überschreitet.
- 26.
Auf Englisch: trial and error.
- 27.
Auf Englisch backtracking .
- 28.
requires n*n < Integer.MAX_VALUE; andernfalls hilft die Verwendung von long oder java.math.BigDecimal
- 29.
Im idealen Fall steht der Ehepartner auf der ersten Stelle.
- 30.
Aus Jane Austen’s „Stolz und Vorurteil“ („Pride and Prejudice“), 1813.
- 31.
In der Bundesrepublik Deutschland an die ZVS (Zentrale Vergabestelle).
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer Fachmedien Wiesbaden GmbH
About this chapter
Cite this chapter
Solymosi, A., Grude, U. (2017). Rekursion und Wiederholung. In: Grundkurs Algorithmen und Datenstrukturen in JAVA. Springer Vieweg, Wiesbaden. https://doi.org/10.1007/978-3-658-17546-7_3
Download citation
DOI: https://doi.org/10.1007/978-3-658-17546-7_3
Published:
Publisher Name: Springer Vieweg, Wiesbaden
Print ISBN: 978-3-658-17545-0
Online ISBN: 978-3-658-17546-7
eBook Packages: Computer Science and Engineering (German Language)