Informatik II (D-ITET) Übungsstunde 2,
|
|
- Bastian Linden
- vor 5 Jahren
- Abrufe
Transkript
1 Informatik II (D-ITET) Übungsstunde 2, Hossein Shafagh, Distributed Systems Group, ETH Zürich
2 Ablauf Besprechung von Übung 1 Hinweise für Übung 2
3 Lösung U1.A1 f(a,b) = a x b = a) Induktionsbeweis über a möglich? Induktion über a ist nicht möglich. Der Induktionsanfang schlägt bereits für b > 1 fehl! a ist eine stetig wachsende Grösse à kein Rückschluss auf bereits bewiesene Fälle möglich und keine Induktionsannahme formulierbar b) Terminiert der Algorithmus? Ja, wenn man b auf 1 zurückführen kann Ist das der Fall? Ja! Weil b immer halbiert wird gilt: à Nach log 2 (b) Schritten wird b=1 sein
4 Lösung U1.A1 c) Wie ändert sich der Beweis, wenn der kleinste Fall b=0 ist? Die Definition der Funktion sieht wie folgt aus: f(a,b) = a x b = Die Induktionsannahme lautet dann: Der Induktionsschritt ist ähnlich wie im Original, da Die Ganzzahldivision von 1 durch 2 ergibt 0. In 1b) haben wir gezeigt, dass es immer zu b=1 kommt, also es kommt auch immer zu b=0. Wir müssen den Beweis also im Wesentlichen nicht ändern.
5 Lösung U1.A2a Methodenaufrufe selbst gerade(int x) public static boolean gerade( int x ){ if( x == 0 ) return true; return!gerade( x-1 ); } verdopple(int x) public static int verdopple( int x ){ if( x == 0 ) return 0; return 2 + verdopple( x-1 ); } halbiere(int x) public static int halbiere( int x ){ if( x == 0 ) return 0; if( x == 1 ) return 0; return halbiere( x-2 ) + 1; } x (oder x+1) x (oder x+1) x/2 (oder x/2 +1)
6 Lösung U1.A2b Aufrufe der drei Methoden insgesamt in Abhängigkeit von a und b bei einem Aufruf von f. private static int f(int a, int b) { if (b == 0) return 0; if (gerade(b)) return f(verdopple(a), halbiere(b)); else return a + f(verdopple(a), halbiere(b)); } In jedem Fall wird gerade(b), verdopple(a) und halbiere(b) gerufen. Der Anzahl der Aufrufe (mit Ergebnissen aus Teil A2a) ist also höchstens b+1 + a+1 + b/2 +1 a + 3b/2 + 3
7 Lösung U1.A2c Gesamtanzahl der Methodenaufrufe: Es ist nicht (# Aufrufe von f) * (# Aufrufe einer einzigen Instanz von f) Mit dem Ergebnis aus 2b) ergibt sich: Die Rekursion endet, wenn b=0 ist. Das ist der Fall nach k = log 2 b + 1 Aufrufen, da b in jedem Schritt halbiert wird. Am Ende kriegt man 2ab - a + 3b
8 Lösung U1.A3 /** * This function implements the ancient Egyptian multiplication. * a must be a positive integer b must be a positive integer the product of a and b IllegalArgumentException */ - Angabe in Methodenkopf ermöglicht das Weiterleiten an den Aufrufer! - mehrere Exceptions mit Komma trennen public static int mult(int a, int b) throws IllegalArgumentException { if (a < 1) throw new IllegalArgumentException("Parameter a must be a positive integer but is " + a); if (b < 1) throw new IllegalArgumentException("Parameter b must be a positive integer but is " + b); return f(a, b); }
9 Lösung U1.A3 Exception Handling with try catch public static int mult(int a, int b) (- finally) { try { // Programmcode, der eine Ausnahme ausführen kann if (a <= 0) throw new IllegalArgumentException("A negativ!"); } catch(illegalargumentexception e) { // Programmcode zum Behandeln der Ausnahme } finally { // Abschlussbehandlung } // Es geht ganz normal weiter, denn die Ausnahme wurde behandelt }
10 Ablauf Besprechung von Übung 1 Hinweise für Übung 2
11 Übung 2 Aufgaben 1 und 3 Bäume in der Informatik... vs. Images:
12 Hinweise U2 1. Wurzelbäume Trennung von Struktur und Darstellung Klammerdarstellung Darstellung in eingerückter Form 2. Rekursives Sortieren Ausgabe von Objekten mittels tostring() Rekursiver Sortieralgorithmus 3. Binärbäume als Arrays Wichtig: checktree()
13 U2.A1 Darstellung Übersicht: Verschiedene Arten von Bäumen o to t t e te A A i i n in Allgemeiner Baum: Jeder Knoten hat x Kinder Binärbaum: Jeder Knoten hat maximal 2 Kinder a tea d ted n ten n inn Binärer/Triärer Suchbaum: Geordnetes Speichern von Knoten Trie (von «Retrieval»): Nicht Knoteninhalt, sondern Knotenposition ist wichtig, d.h.: Kanten enthalten Information! (z.b. Suffixbaum, text autocomplete) Aufgabe: Umgang mit verschiedenen Darstellungen
14 U2.A1 Darstellung Übersicht: Verschiedene Arten von Bäumen o to t t e te A A i i n in Allgemeiner Baum: Jeder Knoten hat x Kinder Binärbaum: Jeder Knoten hat maximal 2 Kinder A a tea d ted n ten n inn Binärer/Triärer Suchbaum: A Geordnetes Speichern von Knoten B F 8 Trie (von «Retrieval»): Nicht Knoteninhalt, sondern Knotenposition ist B wichtig, d.h.: E C D E Kanten enthalten Information! (z.b. Suffixbaum, text autocomplete) 3 9 C D 1 6 Aufgabe: Umgang mit verschiedenen Darstellungen
15 Durchlaufen von Bäumen... preorder(node) { print(node) if left!= null then preorder(left) if right!= null then preorder(right) } Pre-Order «Aussen» rumlaufen, Knoten beim «links» vorbeilaufen drucken «root, left, right» 8, 3, 1, 6, 4, 7, 10, 14, 13 In-Order «Aussen» rumlaufen, Knoten beim «unten» vorbeilaufen drucken «left, root, right» Post-Order «Aussen» rumlaufen, Knoten beim «rechts» vorbeilaufen drucken «left, right, root» Informatik II 15
16 Durchlaufen von Bäumen... inorder(node) { if left!= null then inorder(left) print(node) if right!= null then inorder(right) } Pre-Order «Aussen» rumlaufen, Knoten beim «links» vorbeilaufen drucken «root, left, right» 8, 3, 1, 6, 4, 7, 10, 14, 13 In-Order «Aussen» rumlaufen, Knoten beim «unten» vorbeilaufen drucken «left, root, right» 1, 3, 4, 6, 7, 8, 10, 13, 14 Post-Order «Aussen» rumlaufen, Knoten beim «rechts» vorbeilaufen drucken «left, right, root» Informatik II 16
17 Durchlaufen von Bäumen... postorder(node) { if left!= null then postorder(left) if right!= null then postorder(right) print(node) } Pre-Order «Aussen» rumlaufen, Knoten beim «links» vorbeilaufen drucken «root, left, right» 8, 3, 1, 6, 4, 7, 10, 14, 13 In-Order «Aussen» rumlaufen, Knoten beim «unten» vorbeilaufen drucken «left, root, right» 1, 3, 4, 6, 7, 8, 10, 13, 14 Post-Order «Aussen» rumlaufen, Knoten beim «rechts» vorbeilaufen drucken «left, right, root» 1, 4, 7, 6, 3, 13, 14, 10, 8
18 Hinweise U2.A2 Sortieren Gerüst auf der Webseite u2a2.randomarray Konstruktor Array von zufällig generierten Zahlen erzeugen Random Klasse verwenden (package: import java.util.random) //RandomGenerator erzeugen: Random r = new Random(); //Array erzeugen... //r random number generieren: r.nextint(1000); tostring() (Format in Javadoc vorgegeben) String s = ""; for ( int i=0; i<array.length, i++ ) return s;
19 Hinweise U2.A2 Sortieren recursivesort(int until) Zuerst nachdenken, dann programmieren.. Aufruf aus sort() mit array.length Kernidee der Rekursion: Reduzieren einer Probleminstanz auf eine kleinere Probleminstanz. Gegeben: Liste mit i Elementen Rekursionsannahme: recursivesort(until-1) sortiert die until-1 größten Zahlen in die ersten until-1 Positionen Rekursionsschritt: Die größte Zahl aus dem Rest des Arrays wird mit Zahl an Stelle until-1 vertauscht à Die ersten until Zahlen sind sortiert. Rekursionsabbruch: Das leere Array ist absteigend sortiert Rekursionsanfang: recursivesort(length) sortiert das ganze Array absteigend
20 Hinweise U2.A2 Sortieren recursivesort(int until) Zuerst nachdenken, dann programmieren.. Aufruf aus sort() mit array.length Kernidee der Rekursion: Reduzieren einer Probleminstanz auf eine kleinere Probleminstanz. Gegeben: Liste mit i Elementen Rekursionsannahme: recursivesort(until-1) sortiert die until-1 größten Zahlen in Um eine die ersten Teilliste until-1 Positionen mit i Elementen absteigend zu sortieren, brauche Rekursionsschritt: ich nur... Die größte Zahl aus dem Rest des Arrays wird mit Zahl an Stelle until-1... die ersten (i 1) Elemente absteigend sortieren vertauscht à Die ersten until Zahlen sind sortiert.... das grösste Element im Rest der Liste suchen Rekursionsabbruch:... und an die Das leere erste Array Stelle ist absteigend des sortiert Restes der Liste setzen Rekursionsanfang: recursivesort(length) sortiert das ganze Array absteigend
21 [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] recursivesort(4) recursivesort(3) recursivesort(2) recursivesort(1) recursivesort(0) Ist sortiert! 2 <- findlargest(0,3) swap(0,2) 2 <- findlargest(1,3) swap(1,2) 3 <- findlargest(2,3) swap(2,3) Kein swap mehr nötig... à Liste absteigend sortiert!
22 Hinweise U2.A3 Binärbaum als Array Binärbäume kann man leicht in einem Array speichern, wenn dieses geeignet interpretiert wird. Die Idee besteht darin: Die Wurzel an Index 0 des Arrays zu setzen und Die beiden direkten Nachfolger von i an den Positionen 2i + 1 und 2i + 2 zu speichern Wie gross ist das Array, welches den Binärbaum speichert? 2 Höhe-1 array.length < 2 Höhe
23 Hinweise U2.A3 Binärbaum als Array char[] tree = new char[7]; D B A F C E tree[0] = A ; tree[1] = B ; tree[2] = C ; tree[3] = D ; tree[4] = ; tree[5] = F ; tree[6] = E ;
24 Hinweise U2.A3 Binärbaum als Array tostring() Idee: Liefert den Baum in eingerückte From tostring() ruft tostring(int node, String identation)auf z.b. tostring(0, ); Helper-Funktion hilfreich (Framework nicht ändern!) checktree() Idee: Wurzel an Index 0 Direkte Nachfolger von i an 2i + 1 und 2i Höhe-1 array.length < 2 Höhe Prüfen ob das für das übergebene Array erfüllt ist Jedes Element braucht einen Vater: "The root is its own father. [ A, B, ] -> gültig [ A, B] -> IllegalArgumentException
25 Eclipse tricks Keyboard shortcuts: Control + Shift + L Auto-formatting: Control + Shift + F Auto-completion: Control + Space Reminder for Javadoc: /** * This function implements the ancient Egyptian multiplication. * a must be a positive integer b must be a positive integer * the product of a and b IllegalArgumentException */ public static int mult(int a, int b) throws IllegalArgumentException
26
Informatik II - Tutorium 2
Informatik II - Tutorium 2 Vincent Becker vincent.becker@inf.ethz.ch 07.03.2018 Vincent Becker 08.03.2018 1 Übungsblatt 1 Vincent Becker 08.03.2018 2 U1.A1 f(a, b) = a x b = a) Induktionsbeweis über a
MehrInformatik II - Übung 02
Informatik II - Übung 02 Katja Wolff katja.wolff@inf.ethz.ch Themen 1. Ein Algorithmus und seine Implementierung in Java 2. Java: Elementare Aspekte 3. Klassen und Referenzen 4. Syntaxanalyse und Compiler
MehrInformatik II Übung 2
Informatik II Übung 2 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös und Simon Mayer gabor.soros@inf.ethz.ch, simon.mayer@inf.ethz.ch 7.3.2013
MehrInformatik II Übung 2. Pascal Schärli
Informatik II Übung 2 Pascal Schärli pascscha@student.ethz.ch 08.03.2018 Code Expert Pascal Schärli 08.03.2018 2 Nachbesprechung Serie 1 Aufgabe 1 a) Induktionsbeweis über a möglich? Nein! Der Induktionsanfang
MehrInformatik II (D-ITET)
Informatik II (D-ITET) simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Informatik II (D-ITET) 1 Ablauf Nachbesprechung Übung 1 Besprechung der Vorlesung Übungsbezogene Themen: Bäume, Rekursion,
MehrInformatik II (D-ITET) Übungsstunde 2
Informatik II (D-ITET) Übungsstunde 2 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung der Vorlesung Übungsbezogene Themen: Bäume, Rekursion, Sortieren Zeit zum Programmieren
MehrInformatik II Übung 02. Benjamin Hepp 8 March 2017
Informatik II Übung 02 Benjamin Hepp benjamin.hepp@inf.ethz.ch 8 March 2017 Nachbesprechung U1 08.03.2017 Informatik II - Übung 01 2 Nachbesprechung U1.1 f(a,b) = a x b = a) Induktionsbeweis ueber a nicht
MehrInformatik II Übung 2
Informatik II Übung 2 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 7.3.2018 Carina Fuss 7.3.2018 1 Übersicht Tipps zu Eclipse Nachbesprechung Übung 1 Vorbesprechung Übung 2 Wurzelbäume Sortieralgorithmus
MehrInformatik II Übung 2 Gruppe 7
Informatik II Übung 2 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Ablauf der Übung Administratives (wenn vorhanden) Debriefing (Besprechung des Blattes der Vorwoche) Briefing (Ausblick auf das nächste
MehrInformatik II - Übung 03
Informatik II - Übung 03 Katja Wolff katja.wolff@inf.ethz.ch 15.03.2014 Besprechung Übungsblatt 2 Informatik II - Übung 03 15.03.2017 2 U2.A1 S Klammerdarstellung und eingerückter Form R P V S(R(H(K)),P(A(N,O),Q,T),V(J,F(G)))
MehrInformatik II Übung 2. Gruppe 4. Lukas Burkhalter (Folien teils von Christian B. und Leyna S.)
Informatik II Übung 3 Gruppe 4 (Folien teils von Christian B. und Leyna S.) Lukas Burkhalter lubu@inf.ethz.ch Informatik II Übung 2 Lukas Burkhalter 14. März 2018 1 Ablauf der Übung Nachbesprechung der
MehrInformatik II Übung 3. Pascal Schärli
Informatik II Übung 3 pascscha@student.ethz.ch Warm up Ist das ein Baum? Left child: Right child: Parent: [A B C _ E _ G H I _] 0 2 3 4 5 6 7 8 9 1 2*i + 1 2*i + 2 (i-1)/2 2 Überblick Serie 3 Aufgabe 1
MehrInformatik II (D-ITET) Übungsstunde 3,
Informatik II (D-ITET) Übungsstunde 3, 16.03.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Handbuch Java is auch eine Insel Besonders interessant für Java-Einsteiger,
MehrInformatik II (D-ITET) Informatik II (D-ITET) Übungsstunde 1. Distributed Systems Group, ETH Zürich
Informatik II (D-ITET) Informatik II (D-ITET) simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Übungsstunde 1 Informatik II (D-ITET) 1 Ablauf Nachbesprechung Übung 1 und Übung 2 Besprechung
MehrInformatik II Übung 3
Informatik II Übung 3 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 14.3.2018 Carina Fuss 14.3.2018 1 Übung 2 Nachbesprechung Übung 2 Vorbesprechung Übung 3 String vs. StringBuffer Syntaxdiagramme und Syntaxchecker
MehrInformatik II (D-ITET) Informatik II (D-ITET) Übungsstunde 1. Distributed Systems Group, ETH Zürich
Informatik II (D-ITET) Informatik II (D-ITET) simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Übungsstunde 1 Informatik II (D-ITET) 1 Ablauf Überblick + Administratives Besprechung der Vorlesung
MehrInformatik II (D-ITET)
Informatik II (D-ITET) Übungsstunde 1 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Ueberblick + Administratives Besprechung der Vorlesung Einfuehrungsthemen: Eclipse, JUnit, Serienabgabe
MehrInformatik II (D-ITET) Informatik II (D-ITET) Übungsstunde 1. Distributed Systems Group, ETH Zürich
Informatik II (D-ITET) Informatik II (D-ITET) simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Übungsstunde 1 Informatik II (D-ITET) 1 Ablauf Nachbesprechung Übungen 3 und 4 Besprechung der
MehrInformatik II (D-ITET) Übungsstunde 5
Informatik II (D-ITET) Übungsstunde 5 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Nachbesprechung Übungen 3 und 4 Besprechung der Vorlesung Übungsbezogene Themen: Referenzen, Listen
MehrInformatik II Übung 7 Gruppe 7
Informatik II Übung 7 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 7 Leyna Sadamori 10. April 2014 1 Administratives Nächste Übung fällt leider aus! Bitte eine andere Übung besuchen.
MehrInformatik II (D-ITET) Übungsstunde 1,
Informatik II (D-ITET) Übungsstunde 1, 02.03.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Überblick + Administratives Besprechung der Vorlesung Einführungsthemen:
MehrInformatik II Übung 1 (slides teils von Christian Beckel) Gruppe 4. Lukas Burkhalter
Informatik II Übung 1 (slides teils von Christian Beckel) Gruppe 4 Lukas Burkhalter lubu@inf.ethz.ch Informatik II Übung 1 Lukas Burkhalter 28. Februar 2018 1 Welcome Über mich https://people.inf.ethz.ch/burlukas
MehrInformatik II Übung 1
Übung 1 Florian Scheidegger florsche@student.ethz.ch Folien mit freundlicher Genehmigung adaptiert von Gábor Sörös gabor.soros@inf.ethz.ch Wer bin ich? Florian Scheidegger Student D-ITET (6 Semester) E-Mail:
MehrInformatik II (D-ITET) Übungsstunde 5,
Informatik II (D-ITET) Übungsstunde 5, 30.04.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung von Übung 4 More Java insights (Call by Value und Call by
MehrAlgorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel
Algorithmen und Datenstrukturen Bäume M. Herpers, Y. Jung, P. Klingebiel 1 Lernziele Baumstrukturen und Ihre Verwendung kennen Grundbegriffe zu Bäumen anwenden können Baumstruktur in C anlegen können Suchbäume
MehrBeispiellösung zur Klausur AI2 im Sommersemester 2007
Beispiellösung zur Klausur AI2 im Sommersemester 2007 Die Lösung soll als Beispiellösung für die Vorbereitung auf die Nachklausur dienen. Es ist durchaus möglich, dass sich noch kleine Fehler eingeschlichen
MehrBinäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps
Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer
MehrWiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.
Wiederholung Baum: Gerichteter Graph, der die folgenden drei Bedingungen erfüllt: Es gibt einen Knoten, der nicht Endknoten einer Kante ist. (Dieser Knoten heißt Wurzel des Baums.) Jeder andere Knoten
MehrProbeklausur zur Vorlesung
Dr. Jochen Hoenicke Alexander Nutz Probeklausur zur Vorlesung Einführung in die Informatik Sommersemester 2014 Die Klausur besteht aus diesem Deckblatt und elf Blättern mit den Aufgaben, sowie einem Blatt
MehrGrundlagen der Informatik / Algorithmen und Datenstrukturen. Aufgabe 139
Aufgabe 139 Aufgabe 139 Aufgabenstellung Stellen Sie den folgenden in Feldbaum-Darstellung beschriebenen Binärbaum a) graphisch (welcher Knoten ist die Wurzel?), b) in halbsequentieller Darstellung, c)
MehrDatenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen
Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet
MehrInformatik II Übung 01. Benjamin Hepp 8 March 2017
Informatik II Übung 01 Benjamin Hepp benjamin.hepp@inf.ethz.ch 8 March 2017 Administratives Gruppe 03 Ort: IFW B 42 Zeit: Mittwoch um 13:15 (45 Minuten) Keine Uebung an Ostern (17.04 21.04) Buch und Skript:
MehrÜbung 4: Die generische Klasse AvlBaum in Java 1
Übung 4: Die generische Klasse AvlBaum in Java 1 Ein binärer Suchbaum hat die AVL -Eigenschaft, wenn sich in jedem Knoten sich die Höhen der beiden Teilbäume höchstens um 1 unterscheiden. Diese Last (
MehrAbschlussklausur Lösung. Bitte in Druckschrift leserlich ausfüllen!
Informatik für Informationsmanager II SS 2006 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Steffen Staab Dr. Manfred Jackel Abschlussklausur 04.08.2006 Lösung Bitte in Druckschrift leserlich
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr
MehrNatürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16
Natürliche Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 Natürliche Bäume 1/16 Bäume Begriffe (1/2) Bäume sind verallgemeinerte Listenstrukturen ein
MehrInformatik II Übung 5 Gruppe 3
Informatik II Übung 5 Gruppe 3 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 5 Leyna Sadamori 29. März 2017 1 Administrativ Die Übung am 5. April fällt aus! Bitte in die Übung in HG G 3
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein
MehrII.4.4 Exceptions - 1 -
n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen
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.
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Die Definition wichtiger Begriffe im Zusammenhand mit Bäumen zu kennen. Markierte Bäumen, insbesondere Suchbäume,
MehrBäume. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang. WS 07/08
Bäume Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Standardimplementierungen für Bäume kennen lernen 3 Bäume (abstrakt) Bäume sind
Mehr5 Bäume. 5.1 Suchbäume. ein geordneter binärer Wurzelbaum. geordnete Schlüsselwertmenge. heißt (schwach) sortiert, g.d.w. gilt:
5 Bäume 5.1 Suchbäume Sei ein geordneter binärer Wurzelbaum. Sei Abbildung der Knotenmenge eine in eine vollständig geordnete Schlüsselwertmenge. heißt (schwach) sortiert, g.d.w. gilt: Falls sortiert ist,
Mehr! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur
MehrInformatik II - Übung 01
Informatik II - Übung 01 Raphael Fischer (Folien basierend auf denen von Christian Beckel) fischrap@student.ethz.ch 01.03.2017 Wie sieht eine Übungsstunde aus? 1) Fragen aus der Vorlesung! 2) Praktische
MehrInformatik II - Übung 07
Informatik II - Übung 07 Katja Wolff katja.wolff@inf.ethz.ch Besprechung Übungsblatt 6 Informatik II Übung 07 12.04.2017 2 Übungsblatt 6 1.) Klassen, Schnittstellen, Typumwandlung 2.) Schnittstellen und
MehrÜbungen zum Bioinformatik-Tutorium. Blatt 6
Institut für Informatik Wintersemester 2018/19 Praktische Informatik und Bioinformatik Prof. Dr. Ralf Zimmer Übungen zum Bioinformatik-Tutorium Blatt 6 Termin: Dienstag, 27.11.2018, 11 Uhr 1. Klassen und
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1
Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können
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
Mehr13 Berechenbarkeit und Aufwandsabschätzung
13 Berechenbarkeit und Aufwandsabschätzung 13.1 Berechenbarkeit Frage: Gibt es für jede Funktion, die mathematisch spezifiziert werden kann, ein Programm, das diese Funktion berechnet? Antwort: Nein! [Turing
MehrBäume. Martin Wirsing. Ziele. Implementierung von Knoten. Bäume (abstrakt) Standardimplementierungen für Bäume kennen lernen
2 Ziele Bäume Standardimplementierungen für Bäume kennen lernen Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 02/0 4 Bäume (abstrakt) Implementierung von Knoten Bäume
MehrAlgorithmen und Programmierung III
Musterlösung zum 4. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Amortisierte Analyse 10 Punkte Zu erst betrachte ich wie oft die letzte Ziffer
MehrMengen. Binäre Suchbäume. Mengen: Anwendungen (II) Mengen: Lösung mit Listen 12/3/12. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps
// Mengen Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps n Ziel: ufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: n eines Elements n eines Elements
Mehr! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -
! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
MehrClausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele.
lausthal Informatik II Bäume. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Beispiele Stammbaum. Zachmann Informatik 2 - SS 06 Bäume 2 Stammbaum Parse tree, Rekursionsbaum Unix file hierarchy
MehrJavakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Objektorientierte Programmierung 22. 05. 2006 Aufgabe 9 (SMS-Eingabe am Handy mit Tries)
MehrÜbungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2013 PD Dr. Cyrill Stachniss Dr. Rainer Kümmerle Übungsblatt 13 Abgabe / Besprechung in Absprache
MehrII.4.4 Exceptions - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.4 Exceptions - 1 - Ausnahmen (Exceptions)
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 17/18. Kapitel 14. Bäume. Bäume 1
Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können
MehrInformatik II Übung 1 Gruppe 7. Leyna Sadamori
Informatik II Übung 1 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Ablauf der Übung Administratives (wenn vorhanden) Debriefing (Besprechung des Blattes der Vorwoche) Briefing (Ausblick auf das nächste
Mehr1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen
1. Rekursive Algorithmen 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ ] ( ) Infix-Operator Methodenaufruf new
MehrInformatik II - Tutorium 1
Informatik II - Tutorium 1 Vincent Becker vincent.becker@inf.ethz.ch 28.02.2018 Vincent Becker 28.02.2018 1 CMU, Pittsburgh INESC TEC, Porto Vincent Becker 28.02.2018 2 Interacting with Devices Recognize
MehrInformatik II. Übungsstunde 6. Distributed Systems Group, ETH Zürich
Informatik II Übungsstunde 6 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung der Vorlesung Uebungsbezogene Themen: Statisches & Dynamisches Type Checking Zeit zum Programmieren...
Mehr18. Natürliche Suchbäume
Wörterbuchimplementationen 1. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Hashing: Implementierung von Wörterbüchern mit erwartet sehr schnellen Zugriffszeiten. Nachteile
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrAlgorithmen und Programmierung III
Musterlösung zum 5. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Implementieren von ADTs Testlauf der Klasse TestDeque in der z05a1.jar: 10 Punkte
MehrClausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele. Stammbaum.
lausthal Informatik II Bäume. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Beispiele Stammbaum. Zachmann Informatik - SS 0 Bäume Stammbaum Parse tree, Rekursionsbaum Unix file hierarchy
MehrWiederholungsblatt Einführung in die Programmierung Lösungen
Ludwig-Maximilians-Universität München Institut für Informatik Prof. Dr. Peer Kröger Michael Fromm, Florian Richter WiSe 2018/2019 09.02.2019 Wiederholungsblatt Einführung in die Programmierung Lösungen
Mehr13. Bäume: effektives Suchen und Sortieren
13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Version: 25. Jan. 2016 Schwerpunkte Aufgabe und Vorteile von Bäumen Sortieren mit Bäumen Ausgabealgorithmen:
MehrKapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions
Kapitel 10 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Exceptions Behandlung von Exceptions Der finally-block catch or throw WS 07/08 1/ 23 2/ 23 Grundlagen von Exceptions
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Datenstruktur Liste Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 42 Formale Definition
MehrSoftware Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
Mehr13. Bäume: effektives Suchen und Sortieren
Schwerpunkte Aufgabe und Vorteile von Bäumen 13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Sortieren mit Bäumen Ausgabealgorithmen: - Preorder - Postorder
MehrAusnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein
Ausnahmen Exceptions Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten Dr. Beatrice Amrhein Definition 2 Definition: Ausnahme (Exception) In C# werden Fehler, die zur Laufzeit im
MehrInformatik II - Tutorium 5
Informatik II - Tutorium 5 Vincent Becker vincent.becker@inf.ethz.ch 28.03.2018 Vincent Becker 28.03.2018 1 Neue Webseite Vincent Becker 28.03.2018 3 Allgemeines Java-Konvention: Alle Variablen- und Methodennamen
Mehr9. Natürliche Suchbäume
Bäume Bäume sind. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Verallgemeinerte Listen: Knoten können mehrere Nachfolger haben Spezielle Graphen: Graphen bestehen aus Knoten
MehrAbgabe: (vor 12 Uhr)
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 7 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrKapitel 12: Induktive
Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter
MehrDatenstrukturen & Algorithmen Lösungen zu Blatt 8 FS 16
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik. April 0
Mehr1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.
1 Informatik I: Einführung in die Programmierung 11. Bäume e e Albert-Ludwigs-Universität Freiburg Bernhard Nebel 17. November 2017 17. November 2017 B. Nebel Info I 3 / 33 Bäume in der Informatik Bäume
MehrKurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.
Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom 15.08.98 Seite 1 Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15. August 1998 Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur
MehrAusnahmen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 27.6.
Ausnahmen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 27.6.07 G. Bohlender (IANM UNI Karlsruhe) Ausnahmen 27.6.07 1 / 8 Übersicht 1 Einführung
MehrEinführung in die Programmierung mit Java
Einführung in die Programmierung mit Java Teil 9: Ausnahmebehandlung Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 8. Dezember
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 10 (27.5.2016) Binäre Suchbäume II Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
MehrClausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele. Stammbaum
lausthal Informatik II lausthal University, ermany zach@tu-clausthal.de Beispiele Stammbaum 2 1 Unix file hierarchy / Stammbaum (Evolution) bin aaclarke files mandel Point.java stock lib etc cs126 grades
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:
MehrRekursion. Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren
Rekursion Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren Mathematische Rekursion o Viele mathematische Funktionen sind sehr natürlich rekursiv definierbar, d.h. o die
MehrAusnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren
Ausnahmebehandlung Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren Ausnahmen abfangen Ausnahmen definieren Sinnvolle Verwendung von Ausnahmen Informatik II: Objektorientierte SW-Entwicklung, Algorithmik,
MehrAnwendungsbeispiel MinHeap
Anwendungsbeispiel MinHeap Uns seien n ganze Zahlen gegeben und wir möchten darin die k größten Zahlen bestimmen; zudem gelten, dass n deutlich größer als k ist Wir können das Problem mit Laufzeit in O(n
MehrTutoraufgabe 1 (Listen):
Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Allgemeine Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet
Mehr