Präsentationsfolien (PDF)
Präsentationsfolien (PDF) Präsentationsfolien (PDF)
8.1 Einführung der Rekursion Korrekt gemäß Spezifikation? n • Fakultätsfunktion mathematisch: n! = i=1 i • Java-Code: long fakultaet(int n) { if (n == 1) { return 1; } else { return n * fakultaet(n - 1); } } • Nachweis von fakultaet(n) = n! für alle n 1 □ Induktionsanfang: fakultaet(1) = 1 = i=1 i = 1! □ Induktionsschluss "nn+1": fakultaet(n+1) = (n+1)*fakultaet(n) //Ausführung = (n+1) . n! //Induktionsannahme n = (n+1) . i=1 i //Definition von n! n+1 = i=1 i //Definition von Algorithmen und Datenstrukturen Philippsen/Stamminger/Pflaum/Riehle WS 2010/2011 Folie 08-12
8.1 Einführung der Rekursion Terminierungsüberlegungen • Terminierung kann für eine einzelne Eingabe nur im Erfolgsfall nachgewiesen werden. • Rekursive Berechnung terminiert, wenn □ es eine Fallunterscheidung im Rumpf der Funktion gibt, bei der mindestens ein Fall keinen rekursiven Aufruf enthält und □ wenn jeder rekursive Aufruf nach endlich vielen Schritten einen nicht-rekursiven Fall erreicht. Algorithmen und Datenstrukturen Philippsen/Stamminger/Pflaum/Riehle WS 2010/2011 Folie 08-13
- Seite 1 und 2: Algorithmen und Datenstrukturen 8.
- Seite 3 und 4: 8. Rekursion 8.1 Einführung der Re
- Seite 5 und 6: 8.1 Einführung der Rekursion Eine
- Seite 7 und 8: 8.1 Einführung der Rekursion Zentr
- Seite 9 und 10: 8.1 Einführung der Rekursion Java-
- Seite 11: 8.1 Einführung der Rekursion Rekur
- Seite 15 und 16: 8.1 Einführung der Rekursion Termi
- Seite 17 und 18: 8.2 Türme von Hanoi Problemspezifi
- Seite 19 und 20: 8.2 Türme von Hanoi Lösungsansatz
- Seite 21 und 22: 8.2 Türme von Hanoi Java-Code void
- Seite 23 und 24: 8.2 Türme von Hanoi • Korrekthei
- Seite 25 und 26: 8.3 Fibonacci-Zahlen • Ergebnis:
- Seite 27 und 28: 8.3 Fibonacci-Zahlen • Fibonacci-
- Seite 29 und 30: 8.3 Fibonacci-Zahlen Durchreichen v
- Seite 31 und 32: 8.3 Fibonacci-Zahlen Analyse der Re
- Seite 33 und 34: 8.4 Skyline-Problem Teile-und-Herr
- Seite 35 und 36: 8.4 Skyline-Problem Teile-und-Herr
- Seite 37 und 38: 8.4 Skyline-Problem Teile-und-Herr
- Seite 39 und 40: 8.4 Skyline-Problem Teile-und-Herr
- Seite 41 und 42: 8.5 Hinführung: Blasensortierung (
- Seite 43 und 44: 8.5 Sortieren durch Mischen („mer
- Seite 45 und 46: 8.5 Sortieren durch Mischen („mer
- Seite 47 und 48: 8.6 Rekursionsformen • Verschacht
- Seite 49 und 50: 8.6 Rekursionsformen • Verschrän
- Seite 51 und 52: 8.6 Rekursionsformen • Fakultäts
8.1 Einführung der Rekursion<br />
Terminierungsüberlegungen<br />
• Terminierung kann für eine einzelne Eingabe nur im Erfolgsfall<br />
nachgewiesen werden.<br />
• Rekursive Berechnung terminiert, wenn<br />
□ es eine Fallunterscheidung im Rumpf der Funktion gibt,<br />
bei der mindestens ein Fall keinen rekursiven Aufruf enthält<br />
und<br />
□ wenn jeder rekursive Aufruf nach endlich vielen Schritten<br />
einen nicht-rekursiven Fall erreicht.<br />
Algorithmen und Datenstrukturen Philippsen/Stamminger/Pflaum/Riehle WS 2010/2011 Folie 08-13