UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 7. Entrekursivierung
|
|
- Felix Fürst
- vor 5 Jahren
- Abrufe
Transkript
1 UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 7 Entrekursivierung Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69, A-4040 Linz
2 Rekursive Algorithmen Vorteile Elegant Prägnant Kurz Nachteile (Schwerer nachvollziehbar) Schlechtere Effizienz Laufzeit Speicherbedarf In der Praxis oft nicht vertretbar Konsequenz: Rekursionen vermeiden oder beseitigen < 2 >
3 Entrekursivierung ::Vorgehensweise Rekursives Programm 1. Vorbereitung nur ein rekursiver Aufruf pro Zeile direkte Return-Anweisungen beseitigen 2. Automatenstruktur Schritte getrennt durch rekursive Aufrufe Schleife einbauen 3. Entrekursivieren noch mit Textanweisungen vollständiges entrekursiviertes Programm < 3 >
4 Entrekursivierung :: Beispiel Schritt 1 Folgender Algorithmus soll entrekursiviert werden: int W( int m int n) { if (m == 1 n == 1) { return m + n return W( m-1 n) + W( m n-1) < 4 >
5 Entrekursivierung :: Beispiel Schritt Nur ein rekursiver Aufruf pro Zeile return m + n return W( m-1 n) + W( m n-1) return m + n w1 = W( m-1 n) w2 = W( m n-1) return w1 + w2 < 6 >
6 Entrekursivierung :: Beispiel Schritt Direkte Return- Anweisung beseitigen return m + n w1 = W( m-1 n) w2 = W( m n-1) return w1 + w2 else { w1 = W( m-1 n) w2 = W( m n-1) < 7 >
7 Entrekursivierung :: Beispiel Schritt 3.1 Automatenstruktur: else { 1 W( m-1 n) w1= W( m n-1) 2 w2= 3 < 8 >
8 Entrekursivierung :: Beispiel Schritt 3.2 Automatenstruktur + Loop: int state = 1 while (state!=0) { switch(state) { case 1: state = 0 else { result = W( m-1 n) state = 2 Ist noch rekursiv! case 2: w1 = result result = W( m n-1) state = 3 case 3: w2 = result state = 0 // switch // while < 9 >
9 Entrekursivierung :: Beispiel Schritt 4.1 Entrekursiviert (noch textuell): int state = 1 while (state!= 0) { switch(state) { case 1: else { case 2: w1 = result case 3: w2 = result // switch // while < 10 >
10 Entrekursivierung :: Beispiel Schritt 4.1 Entrekursiviert (noch textuell): int state = 1 Kellerspeicher einrichten while (state!= 0) { switch(state) { case 1: else { case 2: w1 = result case 3: w2 = result // switch // while < 11 >
11 Entrekursivierung :: Beispiel Schritt 4.1 Entrekursiviert (noch textuell): int state = 1 Kellerspeicher einrichten while (state!= 0) { switch(state) { case 1: Abbruchbedingung erreicht -> Ende else { case 2: w1 = result case 3: w2 = result // switch // while < 12 >
12 Entrekursivierung :: Beispiel Schritt 4.1 Entrekursiviert (noch textuell): int state = 1 Kellerspeicher einrichten while (state!= 0) { switch(state) { case 1: Abbruchbedingung erreicht -> Ende else { relevante Variablen und nächsten Zustand einkellern Parameter einstellen state = 1 -> zum Start case 2: w1 = result case 3: w2 = result // switch // while < 13 >
13 Entrekursivierung :: Beispiel Schritt 4.1 Entrekursiviert (noch textuell): int state = 1 Kellerspeicher einrichten while (state!= 0) { switch(state) { case 1: Abbruchbedingung erreicht -> Ende else { relevante Variablen und nächsten Zustand einkellern Parameter einstellen state = 1 -> zum Start case 2: rel. Var. auskellern w1 = result rel. Var. und nächsten Zustand einkellern Parameter einstellen state = 1 -> gehe zum Start case 3: w2 = result // switch // while < 14 >
14 Entrekursivierung :: Beispiel Schritt 4.1 Entrekursiviert (noch textuell): int state = 1 Kellerspeicher einrichten while (state!= 0) { switch(state) { case 1: Abbruchbedingung erreicht -> Ende else { relevante Variablen und nächsten Zustand einkellern Parameter einstellen state = 1 -> zum Start case 2: rel. Var. auskellern w1 = result rel. Var. und nächsten Zustand einkellern Parameter einstellen state = 1 -> gehe zum Start case 3: rel. Var. auskellern w2 = result state = 0 -> Ende // switch // while < 15 >
15 Entrekursivierung :: Beispiel Schritt 4.1 Entrekursiviert (noch textuell): int state = 1 Kellerspeicher einrichten while (state!= 0) { switch(state) { case 1: Abbruchbedingung erreicht -> Ende else { relevante Variablen und nächsten Zustand einkellern Parameter einstellen state = 1 -> zum Start case 2: rel. Var. auskellern w1 = result rel. Var. und nächsten Zustand einkellern Parameter einstellen state = 1 -> gehe zum Start case 3: rel. Var. auskellern w2 = result state = 0 -> Ende // switch if (state ==0 && Keller nicht leer){ Folgezustand nach Rekursion auskellern // while < 16 >
16 Entrekursivierung :: Beispiel Schritt 4.2 Entrekursiviert (vollständiger Algorithmus): int state = 1 initstack() while (state!= 0) { switch(state) { case 1: state = 0 else { push( m); push( n) push( 2) m = m-1 state = 1 case 2: pop( n); pop( m) w1 = result push( w1) push( 3) n = n-1 state = 1 case 3: pop( w1) w2 = result state = 0 // switch if ((state == 0 &&!emptystack()) pop( state) // while < 17 >
17 Entrekursivierung :: Schreibtischtest State m n w1 w2 result Stack < 18 >
18 Entrekursivierung :: Schreibtischtest int state = 1 initstack() while (state!= 0) { switch(state) { case 1: state = 0 else { push( m); push( n) push( 2) m = m-1 state = 1 case 2: pop( n); pop( m) w1 = result push( w1) push( 3) n = n-1 state = 1 case 3: pop( w1) w2 = result state = 0 // switch if ((state == 0 &&!emptystack()) pop( state) // while < 19 >
19 Entrekursivierung :: Schreibtischtest State m n w1 w2 result Stack < 20 >
20 Entrekursivierung :: Schreibtischtest int state = 1 initstack() while (state!= 0) { switch(state) { case 1: state = 0 else { push( m); push( n) push( 2) m = m-1 state = 1 case 2: pop( n); pop( m) w1 = result push( w1) push( 3) n = n-1 state = 1 case 3: pop( w1) w2 = result state = 0 // switch if ((state == 0 &&!emptystack()) pop( state) // while < 21 >
21 Entrekursivierung :: Schreibtischtest State m n w1 w2 result Stack ,3,2 < 22 >
22 Entrekursivierung :: Schreibtischtest int state = 1 initstack() while (state!= 0) { switch(state) { case 1: state = 0 else { push( m); push( n) push( 2) m = m-1 state = 1 case 2: pop( n); pop( m) w1 = result push( w1) push( 3) n = n-1 state = 1 case 3: pop( w1) w2 = result state = 0 // switch if ((state == 0 &&!emptystack()) pop( state) // while < 23 >
23 Entrekursivierung :: Schreibtischtest State m n w1 w2 result Stack ,3, ,3,2 < 24 >
24 Entrekursivierung :: Schreibtischtest int state = 1 initstack() while (state!= 0) { switch(state) { case 1: state = 0 else { push( m); push( n) push( 2) m = m-1 state = 1 case 2: pop( n); pop( m) w1 = result push( w1) push( 3) n = n-1 state = 1 case 3: pop( w1) w2 = result state = 0 // switch if ((state == 0 &&!emptystack()) pop( state) // while < 25 >
25 Entrekursivierung :: Schreibtischtest State m n w1 w2 result Stack ,3, ,3, , , ,3,2,2, ,3,2,2, ,3,2, ,3,3, ,3,3, ,3, , < 26 >
26 Entrekursivierung :: Schreibtischtest int state = 1 initstack() while (state!= 0) { switch(state) { case 1: state = 0 else { push( m); push( n) push( 2) m = m-1 state = 1 case 2: pop( n); pop( m) w1 = result push( w1) push( 3) n = n-1 state = 1 case 3: pop( w1) w2 = result state = 0 // switch if ((state == 0 &&!emptystack()) pop( state) // while < 27 >
27 Entrekursivierung :: Schreibtischtest State m n w1 w2 result Stack ,3, ,3, , , ,3,2,2, ,3,2,2, ,3,2, ,3,3, ,3,3, ,3, , < 28 >
28 Entrekursivierung :: Zusammenfassung Rekursives Programm 1. Vorbereitung nur ein rekursiver Aufruf pro Zeile direkte Return-Anweisungen beseitigen 2. Automatenstruktur Schritte getrennt durch rekursive Aufrufe Schleife einbauen 3. Entrekursivieren noch mit Textanweisungen vollständiges entrekursiviertes Programm < 29 >
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 5 Asymptotische Laufzeitkomplexität Definition Regeln Beispiele Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 3
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 3 Algorithmen mit Gedächtnis Besonderheit Beispiele Typische Algorithmen Realisierungsvarianten Institut für Pervasive Computing Johannes
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 robert.legenstein@igi.tugraz.at 1 Kapitel 2 Algorithmische robert.legenstein@igi.tugraz.at 2 2. Algorithmische 1) Iterative Algorithmen 2) Rekursive Algorithmen
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 1
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 1 Darstellungsarten von Algorithmen Umgangssprache Stilisierte Prosa Ablauf-/Struktogramme Jana Programmiersprache Institut für Pervasive
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 1
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 1 Darstellungsarten von Algorithmen Umgangssprache Stilisierte Prosa Ablauf-/Struktogramme Jana Programmiersprache Institut für Pervasive
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 5 Asymptotische Laufzeitkomplexität Definition Regeln Beispiele Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger
MehrProgrammieren 1 C Überblick
Programmieren 1 C Überblick 1. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen
Mehr1.4 Die Ackermannfunktion
a : N 2 N : Beispiele: a(0, y) = y + 1, a(x, 0) = a(x 1, 1), x > 0, a(x, y) = a(x 1, a(x, y 1)), x, y > 0. Beh.: a(1, y) = y + 2 Bew. durch Induktion über y: a(1, 0) = a(0, 1) = 2 = 0+2. a(1, y + 1) =
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 9. Sortieren
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 9 Sortieren Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69, A-4040 Linz Sortieren :: Problemstellung
MehrTechnische Informatik I Übung 3: Assembler
Technische Informatik I Übung 3: Assembler Roman Trüb Computer Engineering Group, ETH Zürich 1 Lernziele Übung 3 Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Assembler Codeanalyse Aufgabe 2
MehrTutoraufgabe 1 (Sortieren): Lösung: Datenstrukturen und Algorithmen SS14 Lösung - Übung 4
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Übung F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe (Sortieren): a) Sortieren Sie das folgende Array durch Anwendung des Selectionsort-Algorithmus.
MehrElementare Konzepte von
Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)
Mehr8 Anwendung: Suchen. Folge a ganzer Zahlen; Element x. Wo kommt x in a vor?
8 Anwendung: Suchen Gegeben: Gesucht: Folge a ganzer Zahlen; Element x Wo kommt x in a vor? Naives Vorgehen: Vergleiche x der Reihe nach mit a[0], a[1], usw. Finden wir i mit a[i] == x, geben wir i aus.
Mehr7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Rekursion Was bedeutet Rekursion? Geben Sie Beispiele
MehrEinführung in die Informatik I
Einführung in die Informatik I Fortgeschrittene Rekursion Prof. Dr. Nikolaus Wulff Problematische Rekursion Mittels Rekursion lassen sich Spezifikationen recht elegant und einfach implementieren. Leider
Mehr1. Die rekursive Datenstruktur Liste
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen Ideen zur Bestimmung der Länge einer Liste: 1. Verwalte ein globales Attribut int laenge. Fügt man ein Element zur Liste oder löscht es, wird
MehrFHZ. K13 Rekursion. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt
Inhalt 1. Einführung 1. Beispiel: Fakultät 2. Beispiel: Zahlenfolge 3. Beispiel: Formale Sprache 4. Unterschied Iteration/Rekursion 2. Rekursive Methoden 1. Beispiel: Fakultät 2. Beispiel: "Türme
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion
MehrTechnische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015
Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Ziele der Übung Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Codeanalyse
MehrAlgorithmen & Programmierung. Rekursive Funktionen (1)
Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Die Landau-Notation (Wiederholung und Vertiefung) 2. Vorbereitung Aufgabenblatt 1, Aufgabe 1
MehrRekursive Funktionen (1)
Rekursive Funktionen (1) Rekursive Algorithmen Wenn Gesamtlösung durch Lösen gleichartiger Teilprobleme erzielbar: Rekursion möglich Beispiel: Fakultät einer ganzen Zahl n: n i n! = i=1 für n > 0 1 für
MehrInformatik II Übung 4 Gruppe 7
Informatik II Übung 4 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Administratives Kontrolliert eure Abgaben! Jede Gruppe ist verantwortlich für ihre Abgaben Alle Teammitglieder tragen gleichermaßen
MehrRekursive Funktionen (1)
Rekursive Funktionen (1) Rekursive Algorithmen Wenn Gesamtlösung durch Lösen gleichartiger Teilprobleme erzielbar: Rekursion möglich Beispiel: Fakultät einer ganzen Zahl n: nn ii nn! = ii=1 für nn > 0
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 8. September 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr
MehrInstitut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar
MehrInformatik II Übung, Woche 14
Giuseppe Accaputo 7. April, 2016 Plan für heute 1. Java Klassen Beispiel: Implementation eines Vorlesungsverzeichnis (VVZ) 2. Informatik II (D-BAUG) Giuseppe Accaputo 2 Java Klassen Beispiel: Implementation
MehrInstitut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 6. März 2013 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
MehrStack. Seniorenseminar Michael Pohlig
Stack Seniorenseminar 21.06.2013 Michael Pohlig (pohlig@kit.edu) Übersicht 1. Axiomatik eins Kellers und seine Software- Realisierung 2. Bedeutung der Rekursion in der Mathematik 3. Rekursive Programmierung.
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 17. Februar 2018 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 10. Exhaustion / Wiederholung Beispiele Klausurvorbereitung
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 10 Exhaustion / Wiederholung Beispiele Klausurvorbereitung Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger
MehrInformatik II Übung 4 Gruppe 7
Informatik II Übung 4 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 4 Leyna Sadamori 20. März 2014 1 Administratives Text Encoding: UTF-8 Informatik II Übung 4 Leyna Sadamori 20.
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Mariano Zelke Datenstrukturen 2/19 Das Teilfolgenproblem: Algorithmus A 3 A 3 (i, j bestimmt den Wert einer maximalen Teilfolge für a i,..., a j. (1 Wenn
MehrAlgorithmen und Datenstrukturen 04
15. November 2011 1 Besprechung Blatt 3 Hinweise 2 Induktion Allgemeines Beispiele 3 Rekursion Allgemeines Lineare Rekursion und Endrekursion Entrekursivierung Weitere Rekursionstypen 4 Backtracking 5
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrHerzlich willkommen!
Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Teil 6: Zusammenfassung und Beispiele Mail: wemheuer@ewla.de Online: http://cpp.ewla.de/ Zusammenfassung (1) 2 1. Programm in
Mehr99 - Struktogramme - 2. Sequenz I
Struktogramme Sequenz I 99 - Struktogramme - 2 double number, twicenumber; // Einlesen der Anzahl System.out.print("Zahl eingeben:"); number=keyboard.doubleinput(); // Verdopplung der eingegebenen Zahl
MehrSchnittstellen, Stack und Queue
Schnittstellen, Stack und Queue Schnittstelle Stack Realisierungen des Stacks Anwendungen von Stacks Schnittstelle Queue Realisierungen der Queue Anwendungen von Queues Hinweise zum Üben Anmerkung: In
MehrWiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung
Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung maggyrz@freitagsrunde.org 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben
MehrKapitel 5: Dynamisches Programmieren Gliederung
Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen
MehrVorkurs Informatik WiSe 17/18
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 10.10.2017 Technische Universität Braunschweig, IPS Überblick Einleitung Türme von Hanoi Rekursion Beispiele 10.10.2017 Dr. Werner Struckmann
MehrInformatik I: Einführung in die Programmierung
Informatik I: Einführung in die Programmierung 7. Albert-Ludwigs-Universität Freiburg Bernhard Nebel 31. Oktober 2014 1 31. Oktober 2014 B. Nebel Info I 3 / 20 Um zu, muss man zuerst einmal. Abb. in Public
MehrTheoretische Informatik SS 03 Übung 5
Theoretische Informatik SS 03 Übung 5 Aufgabe 1 Im Buch von Schöning ist auf S. 106-108 beschrieben, wie eine Turing-Maschine durch ein GOTO-Programm simuliert werden kann. Zeigen Sie, wie dabei die Anweisungen
MehrKapitel 7: Rekursion. Inhalt. Rekursion: Technik Rekursion vs. Iteration
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Inhalt Rekursion: Technik Prof. Dr. Günter Rudolph Fakultät
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Rekursive Prozeduren zu charakterisieren. Terminierung von rekursiven Prozeduren mit Hilfe von geeigneten Abstiegsfunktionen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen 2.9 Unstrukturierte Kontrollanweisungen W. Tasin, M.Sc. Fakultät 04 tasin@hm.edu Allgemeines (1) Unstrukturierte Kontrollanweisungen ermöglichen einen bedingten oder unbedingte
Mehr1. Die rekursive Datenstruktur Liste
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel Ein Stack, auch Stapel oder Keller genannt, ist eine Datenstruktur, bei der die Elemente nur an einem Ende der Folge eingefügt bzw. gelöscht
MehrII.3.1 Rekursive Algorithmen - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.3.1 Rekursive Algorithmen -
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen
MehrInformatik I (D-ITET)
//009 Informatik I (D-ITET) Übungsstunde 8, 6..009 simonmayer@student.ethz.ch ETH Zürich Besprechung/Vertiefung der Vorlesung [..009] ArrayStack Ausgezeichnet Einige haben s etwas kompliziert gemacht clear()
MehrKapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte
Elementare Schritte Ein elementarer Berechnungsschritt eines Algorithmus ändert im Allgemeinen den Wert von Variablen Zuweisungsoperation von fundamentaler Bedeutung Zuweisungsoperator In Pascal := In
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Fibonacci Zahlen Fibonacci Folge Die Fibonacci
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 12. März 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
MehrHeapsort. 1. Erstelle aus dem gegebenen Array einen Max-Heap (DownHeap) 2. Tausche erstes und letztes Element des Arrays
Heapsort Beispiel für einen eleganten Algorithmus, der auf einer effizienten Datenstruktur (dem Heap) beruht [Williams, 1964] Daten liegen in einem Array der Länge n vor 1. Erstelle aus dem gegebenen Array
MehrInformatik für Schüler, Foliensatz 18 Rekursion
Prof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 26. März 2009 1/10 Informatik für Schüler, Foliensatz 18 Rekursion Prof. G. Kemnitz Institut für Informatik, Technische Universität
MehrRekursion. Sie wissen wie man Programme rekursiv entwickelt. Sie kennen typische Beispiele von rekursiven Algorithmen
Rekursion Sie wissen wie man Programme rekursiv entwickelt Sie kennen typische Beispiele von rekursiven Algorithmen Sie kennen die Vor-/Nachteile von rekursiven Algorithmen Einführung 2 von 40 Rekursiver
MehrEinführung in die Programmierung Wintersemester 2017/18
Einführung in die Programmierung Wintersemester 2017/18 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Rekursion Inhalt Rekursion: Technik Rekursion
MehrEinführung in die Programmierung Wintersemester 2010/11
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Rekursion Inhalt Rekursion: Technik Rekursion
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Jakob Vogel Computer-Aided Medical Procedures Technische Universität München Komplexität von Programmen Laufzeit kann näherungsweise
MehrÜbung zu Einführung in die Informatik # 11
Übung zu Einführung in die Informatik # 11 Tobias Schill tschill@techfak.uni-bielefeld.de 22. Januar 2016 Aktualisiert am 22. Januar 2016 um 11:36 Erstklausur: Mi, 24.02.2016 von 10-12Uhr Aufgabe 1* Aufgabe
MehrAlgorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1
Algorithmen und Datenstrukturen 1. EINLEITUNG Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Allgemeines Einleitung Zu den Begriffen: Algorithmen und Datenstrukturen systematische
MehrGirls Day 2017 Programmierung
Girls Day 2017 Programmierung Anke Brocker Quality Management Würselen, 27. April 2017 www.lancom-systems.de Programmierung 27.04.2017 - Übersicht Programmieren mit der Arduino IDE Die Arduino IDE Der
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 14. März 2016 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
MehrProgrammieren I. Methoden-Special Heusch --- Ratz 6.1, Institut für Angewandte Informatik
Programmieren I Methoden-Special Heusch --- Ratz 6.1, 6.2 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Parameterübergabe: Wertkopie -By- public class MethodParameters { public
MehrLösungsvorschlag Serie 2 Rekursion
(/) Lösungsvorschlag Serie Rekursion. Algorithmen-Paradigmen Es gibt verschiedene Algorithmen-Paradigmen, also grundsätzliche Arten, wie man einen Algorithmus formulieren kann. Im funktionalen Paradigma
Mehr1 Abstrakte Datentypen
1 Abstrakte Datentypen Spezifiziere nur die Operationen! Verberge Details der Datenstruktur; der Implementierung der Operationen. == Information Hiding 1 Sinn: Verhindern illegaler Zugriffe auf die Datenstruktur;
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 13. März 2017 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
MehrPK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben
PK-Einstufungstest 34 / 100 Punkte Alle Aufgaben beziehen sich auf Java. 1. Allgemeine Multiple-Choice-Aufgaben 4 / 15 Punkte Bitte wählen Sie ALLE zutreffenden Antwortmöglichkeiten aus. Es können beliebig
MehrVorkurs Informatik WiSe 16/17
Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 11.10.2016 Technische Universität Braunschweig, IPS Überblick Einleitung Beispiele 11.10.2016 Dr. Werner Struckmann / Stephan Mielke,
MehrPK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben. Aufgabe 1.1. Alle Aufgaben beziehen sich auf Java.
PK-Einstufungstest 59 / 100 Punkte Alle Aufgaben beziehen sich auf Java. 1. Allgemeine Multiple-Choice-Aufgaben 14 / 15 Punkte Bitte wählen Sie ALLE zutreffenden Antwortmöglichkeiten aus. Es können beliebig
Mehr3AA. Prozeduren und Rekursion Prof. Dr. Wolfgang P. Kowalk Universität Oldenburg WS 2005/2006
3AA Prozeduren und Rekursion 29.11.05 Prof. Dr. Wolfgang P. Kowalk Universität Oldenburg WS 2005/2006 3AA Prozeduren Berechnete Sprungadresse Ausführung bestimmter Anweisungen durch Schleifen Stattdessen:
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 7. September 2015 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr
MehrVorlesung Programmieren
Vorlesung Programmieren 17 Vom Programm zur Maschine Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),
MehrTechnische Universität München WiSe 2018/19 Fakultät für Informatik Übungsblatt 6 Dr. Ch. Herzog 26. November 2018
Technische Universität München WiSe 2018/19 Fakultät für Informatik Übungsblatt 6 Dr. Ch. Herzog 26. November 2018 Übungen zu Grundlagen der Programmierung Aufgabe 19 (Lösungsvorschlag) Rekursive Datenstruktur
Mehr4 Rekursionen. 4.1 Erstes Beispiel
4 Rekursionen Viele Algorithmen besitzen sowohl eine iterative als auch eine rekursive Lösung. Sie unterscheiden sich darin, dass die iterative Version meist einen etwas längeren Kode besitzt, während
MehrBrückenkurs Programmieren
Brückenkurs Programmieren Tag 2: Schleifen und Funktionen Christopher Schölzel Technische Hochschule Mittelhessen 27. März 2018 Inhalt Schleifen Einleitung While For Funktionen 2 / 23 Inhalt Schleifen
MehrFakultät IV Elektrotechnik/Informatik
Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)
MehrStack. Queue. pop() liefert zuletzt auf den Stack gelegtes Element und löscht es push( X ) legt ein Element X auf den Stack
Stack und Queue Grundlegender Datentyp Menge von Operationen (add, remove, test if empty) auf generischen Daten Ähnlich wie Listen, aber mit zusätzlichen Einschränkungen / Vereinfachungen: Einfügen immer
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda Amortisierte Analyse Suche in sortierten Arrays Heaps Vorstellen des fünften Übungsblatts
MehrComputersysteme. Stacks Anwendung in der Assembler-Programmierung
Computersysteme Stacks Anwendung in der Assembler-Programmierung 1 Unterprogramme Betrachten wir zunächst folgendes Programm m_mod_n : /Berechne m modulo n für positive Integerwerte m und n. /Beim Programmstart
MehrWS2018/ Oktober 2018
Einführung in die Programmierung Ronja Düffel WS2018/19 05. Oktober 2018 Rückblick Datentypen bool Zahlen (int und float) string Variablen Kontrollstrukturen Verzweigungen (if...: und if...else:) Schleifen
MehrCounting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit
Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält
MehrKlausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek 25. März 2011
Kompaktkurs Einführung in die Programmierung Klausur Seite 1/10 Name, Vorname, Unterschrift: Matrikelnummer: Wichtig: Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek
MehrÜbersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015
Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter
MehrPK-Einstufungstest. 1. Allgemeine Multiple-Choice-Aufgaben. Alle Aufgaben beziehen sich auf Java.
PK-Einstufungstest 69 / 100 Punkte Alle Aufgaben beziehen sich auf Java. 1. Allgemeine Multiple-Choice-Aufgaben 11 / 15 Punkte Bitte wählen Sie ALLE zutreffenden Antwortmöglichkeiten aus. Es können beliebig
MehrProgrammierung für Mathematik (HS13)
software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 11 1 Aufgabe: Codeverständnis 1.1 Aufgabenstellung Notieren Sie, was der folgende Code ausgeben würde, wenn er so in einer
MehrC++ - Kontrollstrukturen Teil 2
C++ - Kontrollstrukturen Teil 2 Reiner Nitsch 8417 r.nitsch@fbi.h-da.de Schleife und Verzweigung kombiniert SV initialisieren while(b1) if(b2) w f V1 V2 SV Richtung Ziel verändern Wichtiger Baustein vieler
Mehr4.4 Imperative Algorithmen Prozeduren
4.4.2 Prozeduren Der Wert eines Ausdrucks u in Zustand z Z lässt sich damit auch leicht definieren (jetzt W Z statt W σ ) Dazu erweitern wir die rekursive Definition von Folie 57 (Wert eines Ausdrucks):
MehrTo know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1
To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1 Rekursion: Beispiele Bier trinken 8-Damen-Problem ipod Shuffle für alle Mitarbeiter Karten
MehrProgrammieren I. Methoden-Spezial Heusch --- Ratz 6.1, Institut für Angewandte Informatik
Programmieren I Methoden-Spezial Heusch --- Ratz 6.1, 6.2 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Parameterübergabe bei primitivem Datentypen (Wertkopie) public class MethodParameters
Mehr