Rekursion Richard Göbel.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Der k-d-Baum Richard Göbel.
Schwierigkeit von Aufgabenstellungen
Informatik II – Kapitel 11
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
FH-Hof Der B-Baum Richard Göbel. FH-Hof Wahl des Verzweigungsgrad Verzweigungsgrad kann größer als 2 sein v Nachfolger für einen Knoten v-1 Werte in einem.
Rekursionen Erstellt von J. Rudolf im November 2001 /
Durchlaufen eines Binärbaumes
3. Kapitel: Komplexität und Komplexitätsklassen
Rekursion Was ist Rekursion? Was sind rekursive Methoden?
Imperative Programmierung
der Universität Oldenburg
Binäre Bäume Richard Göbel.
Sortieren mit Binären Bäumen
Suchbäume Richard Göbel.
Sortierverfahren Richard Göbel.
FH-Hof Künstliche Intelligenz - Suchbäume Richard Göbel.
Listen Richard Göbel.
Parser - Verfahren: Rekursiver Abstieg
Sortierverfahren Richard Göbel.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
FH-Hof Effizienz - Grundlagen Richard Göbel. FH-Hof Inhalt Einführung Aufwand für Anfragen ohne Indexierung Indexstrukturen für Anfragen an eine Tabelle.
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Motivation Richard Göbel.
Strategy Pattern Richard Göbel.
FH-Hof Konturen in Rasterdaten Richard Göbel. FH-Hof Idee Identifiziere Konturen (Linien als Grenzen) zwischen verschiedenen Bereichen Kontur ist durch.
Motivation Richard Göbel.
Effizienz: Indexstrukturen
FH-Hof Analyse des R-Baums Richard Göbel. FH-Hof Ansatz Annahme: Die Bearbeitungszeit für eine Anfrage wird dominiert von der Ladezeit der Knoten von.
Formale Sprachen – Mächtigkeit von Maschinenmodellen
Baumstrukturen Richard Göbel.
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (04 – Entwurfsverfahren) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (10 - Suchverfahren) T. Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 - Bäume: Durchlaufreihenfolgen, Analyse nat. Bäume) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Geometrisches Divide and Conquer
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
FH-Hof Analyse des R-Baums - Teil 1 Richard Göbel.
FH-Hof Algorithmen und Datenstrukturen - Einführung Richard Göbel.
Rekursive Funktionen (Fakultät)
Einführung in die Programmierung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Einführung in die Programmierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung
Grundlagen der Informatik 4 Lehrstuhl für Betriebssysteme 1 Wie werden Funktionen realisiert? Beispiel: int maximum(int x, int y) { int j = x; if (y >
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Christian Mansky Design - Fallstudien Christian Mansky
Binäre Bäume Louis Moret und Reto Huber, 5. 11
2.4 Rekursion Klassifikation und Beispiele
Algorithmen und Datenstrukturen Übungsmodul 8
SWE1 / Übung 10 ( ) Rekursion Binärbäume.
Algorithmen und Datenstrukturen 1 SS 2002
Binärbäume.
Programmiersprachen II Fortsetzung Datenstrukturen Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Rekursion – Speicherverwaltung
2.4 Durchlaufen von Bäumen
Heapsort-Algorithmus
 Präsentation transkript:

Rekursion Richard Göbel

Hilfestellung zur Konstruktion neuer Algorithmen Idee: Rekursion Hilfestellung zur Konstruktion neuer Algorithmen Idee: Aufgabe zerlegen Kleinere Aufgaben lösen Gesamtlösung aus Teillösungen zusammensetzen Rekursive Algorithmen sind teuer: Speicherplatzverbrauch Laufzeit

Welche Verfahren müssen entwickelt werden? Verfahren zur Zerlegung einer Aufgabestellung A in kleinere Aufgabenstellungen B1, B2, . . ., Bn Verfahren zur Konstruktion der Gesamtlösung für A aus den Lösungen für B1, B2, . . ., Bn Verfahren zur Lösung einer „kleinen“ Aufgabenstellung, die nicht weiter zerlegt werden kann

Aufbau eines rekursiven Algorithmus F F(A) A zerlegbar A nicht zerlegbar Zerlegen: A B1, B2, . . . Bn Löse A direkt Rekursion: F(B1) F(B2) . . . F(Bn) Konstruieren: F(B1) F(B2) . . . F(Bn)F(A)

Beispiel 1 – Summe der Zahlen von 1 bis n Funktion sum : int  int Ansatz Zerlegen: n  n-1 Nicht zerlegbar: n = 1 Verfahren sum(1) = 1 sum(n) = sum(n-1) + n für n > 1

Programmcode . . . static int sum(int n) { if (n == 1) return 1; } else return n + sum(n-1);

Funktionsaufrufe benötigen relativ viel Zeit! Kosten Jeder Funktionsaufruf benötigt mindestens den folgenden Speicherplatz auf dem Stack: Rücksprungadresse Aufrufparameter Der Speicherplatzaufwand steigt linear mit dem Betrag des übergebenen Parameters! Funktionsaufrufe benötigen relativ viel Zeit!

Weitere Aufgabe Fakultät: n! Inhalt eines Array umdrehen Sortieren der Zahlen in einem Array

Rekursion für Baumstrukturen Rekursive Algorithmen sind ideal für Baumstrukturen Beginne mit dem Wurzelknoten Wende das Verfahren rekursiv auf alle Kinderknoten an Beispiele Zähle die Knoten in einem Baum Ausgabe der Knoten eines Baums in einer vorgegebenen Ordnung (PreOrder, InOrder, PostOrder) Finde einen Knoten in einem Baum

Aufwand analysieren g f n0 Die O-Notation gibt eine qualitative Abschätzung für den Verlauf einer Funktion (hier Zeit- oder Speicheraufwand) Für eine Funktion f wird der qualitative Aufwand mit einer einfacheren Funktion g angegeben:  c, n0 :  n : n  n0  | f(n) |  | c g(n) | f g n0