Informatik II - Übung 11

Größe: px
Ab Seite anzeigen:

Download "Informatik II - Übung 11"

Transkript

1 Informatik II - Übung 11 Christian Beckel beckel@inf.ethz.ch Blatt 10 1) Merge sort 2) Türme von Hanoi 3) Reversi: alpha-beta-suche Außerdem: Sortierverfahren und ihre Komplexität Christian Beckel 15/05/14 2

2 U10.A1: Merge sort (manuell) Christian Beckel 15/05/14 3 U10.A1: Merge sort (Pseudo-Code: sort) ArrayList sort (ArrayList unsorted, int begin, int end ) if ( end - begin == 0 ) return new ArrayList ( 0 ) if ( end - begin == 1 ) ArrayList result = new ArrayList ( 1 ) result.add ( unsorted[begin] ) return result // divide.. ArrayList lhs = sort ( unsorted, begin, (begin+end) / 2 ) ArrayList rhs = sort ( unsorted, (begin+end) / 2, end ) //..et impera return merge ( lhs, rhs ) Christian Beckel 15/05/14 4

3 U10.A1: Merge sort (Pseudo-Code: merge) ArrayList merge (ArrayList lhs, ArrayList rhs ) int left = 0, right = 0 ArrayList result = new ArrayList ( lhs.size + rhs.size ) loop if ( left == lhs.size ) result.addall ( rhs.sublist ( right, rhs.size ) ) break if ( right == rhs.size ) result.addall ( lhs.sublist ( left, lhs.size ) ) break result.add ( lhs[left]>rhs[right]? lhs[left++] : rhs[right++] ) return result Christian Beckel 15/05/14 5 U10.A1: Merge sort (Measure) ms Elemente Christian Beckel 15/05/14 6

4 U10.A2: Türme von Hanoi Nicht benutzt wird: Zusammenfassung: Anzahl der Scheiben (n): 4 Anzahl der Schritte (2 n-1 ): 15 Nicht benutzt werden: Christian Beckel 15/05/14 7 U10.A2: Türme von Hanoi (n Scheiben) Zusammenfassung: 5 Scheiben (31 Schritte): Scheiben (15 Schritte): Scheiben (7 Schritte): Christian Beckel 15/05/14 8

5 U10.A2: Türme von Hanoi (Pseudocode) moves = 2^n-1; counter = 0; if n even then while (counter < moves) make possible move between tower 1 and tower 2 make possible move between tower 1 and tower 3 make possible move between tower 2 and tower 3 increment counter by 3 units else [n is odd] while (counter < moves-1) make possible move between tower 1 and tower 3 make possible move between tower 1 and tower 2 make possible move between tower 3 and tower 2 increment counter by 3 units make available move between tower 1 and tower 3 make possible move! es gibt immer nur eine Möglichkeit (die kleinere Scheibe, oder die einzige Scheibe) Christian Beckel 15/05/14 9 U10.A3: Reversi (Alpha-Beta-Spieler) " Realisieren Sie eine Bewertungsfunktion, die nach dem α-β-verfahren arbeitet, ansonsten jedoch das gleiche leistet wie die reine Minmax-Methode des letzten Übungsserie. " Am Einfachsten: " 2 Funktionen: min und max, die sich abwechselnd aufrufen. " Die eine ändert die Beta-Schranke, die andere die Alpha-Schranke Christian Beckel 15/05/14 10

6 U10.A3: Reversi (Alpha-Beta-Spieler) BestMove max (int maxdepth, long timeout, GameBoard gb, int depth, int alpha, int beta) throws Timeout if (System.currentTimeMillis() > timeout) throw new Timeout(); if (depth==maxdepth) return new BestMove(eval(gb),null,true); ArrayList<Coordinates> availablemoves = new ArrayList<Coordinates>(gb.getSize()* gb.getsize()); for (int x = 1; x <= gb.getsize(); x++) for (int y = 1; y <= gb.getsize(); y++) { Coordinates coord = new Coordinates(x, y); if (gb.checkmove(mycolor, coord)) availablemoves.add(coord); } if (availablemoves.isempty()) if (gb.ismoveavailable(othercolor)) { BestMove result = min(maxdepth, timeout, gb, depth+1, alpha, beta); return new BestMove(result.value, null, false); } else return new BestMove(finalResult(gb), null, false); [...] Christian Beckel 15/05/14 11 U10.A3: Reversi (Alpha-Beta-Spieler) BestMove max (int maxdepth, long timeout, GameBoard gb, int depth, int alpha, int beta) throws Timeout [...] boolean cut = false; Coordinates bestcoord = null; for (Coordinates coord : availablemoves) { GameBoard hypothetical = gb.clone(); hypothetical.checkmove(mycolor, coord); hypothetical.makemove(mycolor, coord); BestMove result = min(maxdepth, timeout, hypothetical, depth+1, alpha, beta); } if (result.value > alpha) { alpha = result.value; bestcoord = coord; } if (alpha >= beta) { return new BestMove(alpha, null, false); } cut = cut result.cut; return new BestMove(alpha, bestcoord, cut); Christian Beckel 15/05/14 12

7 Reversi-Turnier! " Mittwoch, den um 14:15 Uhr, Stuz 2 reversi/ " Abgabe " Bis Mittwoch, den bis 23:59 (Zürich Time) " An Leyna Sadamori (leyna.sadamori@inf.ethz.ch) " Alleine, in Zweiergruppen, oder in Dreiergruppen (Aber: die Preise sind für Zweiergruppen ausgelegt!) Christian Beckel 15/05/14 13 Blatt 11 1) Sortieren mit Suchbäumen 2) Komplexitätsanalyse und O-Notation 3) Komplexität 4) Ein Springer auf dem Schachfeld Christian Beckel 15/05/14 14

8 Aufwand von Algorithmen " Problemumfang: n " Oft: Anzahl der Eingabewerte " Komplexität eines Problems " Geringstmöglicher Aufwand, der mit einem Lösungsalgorithmus erreicht werden kann " Aufwand " Oft ist der Aufwand eines Algorithmus nicht nur von der Problemgrösse n, sondern von den konkreten Eingabewerten bzw. deren Reihenfolge abhängig. " Dann unterscheidet man i.a. folgende Fälle: " Günstigster Aufwand ( best case ) " Mittlerer Aufwand ( average case ) " Ungünstigster Aufwand ( worst case ) Christian Beckel 15/05/14 15 Zeitkomplexität " Landau-Symbole " Abschätzung durch Analyse " wächst... als " O-Notation " Obere Schranke " Omega-Notation " Untere Schranke Notation f Ο( g) f ο( g) f Ω( g) f ω( g) f Θ( g) Anschauliche Bedeutung f wächst nicht wesentlich schneller als g f wächst langsamer als g f wächst nicht wesentlich langsamer als g f wächst schneller als g f wächst genau so schnell wie g Christian Beckel 15/05/14 16

9 Aufwand von Sortierverfahren Quelle: wikipedia.org Christian Beckel 15/05/14 17 U11.A1 Sortieren mit Suchbäumen " 3 Theoretische Fragen Christian Beckel 15/05/14 18

10 U11.A2: Komplexitätsanalyse // Fragment 1 for (int i=0; i<n; i++) a++; // Fragment 2 for (int i=0; i<2n; i++) a++; for (int j=0; j<n; j++) a++; // Fragment 4 for (int i=0; i<n; i++) for (int j=0; j<i; j++) a++; // Fragment 5 while(n >=1 ) n = n/2; // Fragment 3 for (int i=0; i<n; i++) for (int j=0; j<n; j++) a++; // Fragment 6 for (int i=0; i<n; i++) for (int j=0; j<n*n; j++) for (int k=0; k<j; k++) a++; Christian Beckel 15/05/14 19 U11.A2 - Beispiel // Fragment 1 for (int i=0; i<n; i++) a++; c 0 c 1 *n + = c 0 + c 1 n Christian Beckel 15/05/14 20

11 U11.A3: Komplexität Zeit pro Operation Grösse der Eingabe Totale Laufzeit Christian Beckel 15/05/14 21 U11.A3: Komplexität Christian Beckel 15/05/14 22

12 U11.A4: Ein Springer auf dem Schachbrett Christian Beckel 15/05/14 23 U11.A4 a) Erreichbare Felder " Finde Menge von Feldern: " Erreichbar mit n Zügen " Gegeben: startposition Christian Beckel 15/05/14 24

13 U11.A4 a) Erreichbare Felder " Klasse Position " p = new Position(0,0); " Position next = p.add(new Position(offX, offy)); " Implementiert compareto, equals, etc. " Methode getreachableset " ArrayList<Position> getreachableset(position p, int n) " p: Startposition " n: Anzahl Hops " returns: Knoten in der Menge Christian Beckel 15/05/14 25 U11.A4 b) Backtracking " Finde einen Weg, der... "... alle Felder besucht "... Jedes Feld nur 1x besucht " Frühzeitiger Abbruch " Falls erreichbare Felder alle besucht " Backtracking: löschen der letzten Züge bis Abbruchbedingung nicht mehr erfüllt Christian Beckel 15/05/14 26

14 viel Spass! Christian Beckel 15/05/14 27

Informatik II - Übung 11

Informatik II - Übung 11 Informatik II - Übung 11 Katja Wolff katja.wolff@inf.ethz.ch Blatt 10 1) Merge sort 2) Türme von Hanoi 3) Reversi: alpha-beta-suche Außerdem: Sortierverfahren und ihre Komplexität Informatik II Übung 11

Mehr

Informatik II (D-ITET) Übungsstunde 11,

Informatik II (D-ITET) Übungsstunde 11, Informatik II (D-ITET) Übungsstunde 11, 17.05.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung von Übung 10 Hinweise für Übung 11 (Sortieren, O-Notation)

Mehr

Informatik II Übung 11 Gruppe 7

Informatik II Übung 11 Gruppe 7 Informatik II Übung 11 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 11 Leyna Sadamori 15. Mai 2014 1 Debriefing Übung 10 Informatik II Übung 11 Leyna Sadamori 15. Mai 2014 2 U10A1a

Mehr

Informatik II Übung 11 Gruppe 4

Informatik II Übung 11 Gruppe 4 Informatik II Übung 11 Gruppe 4 (Folien teils von Christian B. und Christelle G.) Lukas Burkhalter lubu@inf.ethz.ch Informatik II Übung 11 Lukas Burkhalter 16. Mai 2018 1 Alpha-Beta klarer 4 oder 2, beides

Mehr

Informatik II Übung 11 Gruppe 3

Informatik II Übung 11 Gruppe 3 Informatik II Übung 11 Gruppe 3 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 11 Leyna Sadamori 17. Mai 2017 1 Nachtrag zu Übung 10 Alpha-Beta-Algorithmus Knotenwerte: Beide Varianten sind

Mehr

Informatik II - Übung 10

Informatik II - Übung 10 Informatik II - Übung 10 Katja Wolff katja.wolff@inf.ethz.ch U9.A1: Mini-Max-Algorithmus Strategie von MAX 4 Höhe: 4 Suchtiefe: 3 bester Zug: links MAX 4 0-2 MIN 4 7 3 0 2-2 8 MAX 7-5 2 1 7 8 MIN Informatik

Mehr

Informatik II (D-ITET) Übungsstunde 10,

Informatik II (D-ITET) Übungsstunde 10, Informatik II (D-ITET) Übungsstunde 10, 11.05.2017 Hossein Shafagh, shafagh@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung von Übung 9 Hinweise für Übung 10 (Mergesort, Türme von

Mehr

Informatik II Übung 11. Pascal Schärli

Informatik II Übung 11. Pascal Schärli Informatik II Übung 11 pascscha@student.ethz.ch Was gibts heute? Warm-Up Nachbesprechung Serie 10 Best-Of Vorlesung: Laufzeitkomplexität Vorbesprechung Serie 11 2 Warm - Up Warm - Up Anzahl Rechenschritte

Mehr

Informatik II - Übung 10

Informatik II - Übung 10 Informatik II - Übung 10 Christian Beckel beckel@inf.ethz.ch 08.05.2014 Blatt 08 1) Binäre Suche 2) TicTacToe 3) Reversi: checkmove() & GreedyPlayer 4) Backtracking Christian Beckel 09/05/14 2 U8.A3: checkmove()

Mehr

Informatik II Übung 9. Pascal Schärli

Informatik II Übung 9. Pascal Schärli Informatik II Übung 9 pascscha@student.ethz.ch Was gibts heute? Warm-Up Nachbesprechung Serie 8 Best-Of Vorlesung: Minimax Alpha Beta Vorbesprechung Serie 9 Info zur Auffahrt 2 Warm - Up Warm-Up (Basisprüfung

Mehr

Informatik II Übung 09. Benjamin Hepp 3 May 2017

Informatik II Übung 09. Benjamin Hepp 3 May 2017 Informatik II Übung 09 Benjamin Hepp benjamin.hepp@inf.ethz.ch 3 May 2017 Nachbesprechung U8 3 May 2017 Informatik II - Übung 01 2 Nachbesprechung U8 1. Binaere Suche 2. Knapsack Problem 3. Reversi Teil

Mehr

Informatik II Übung 09

Informatik II Übung 09 Informatik II Übung 09 Michael Baumann mbauman@student.ethz.ch n.ethz.ch/~mbauman 04.05.2015 Ablauf 1) Nachbesprechung Serie 8 2) Minimax & Alpha-Beta 3) Vorbesprechung Serie 9 2 Serie 8 3 Aufgabe 1 a,

Mehr

Informatik II - Tutorium 12

Informatik II - Tutorium 12 Informatik II - Tutorium 12 Vincent Becker vincent.becker@inf.ethz.ch 23.05.2018 Vincent Becker 24.05.2018 1 Reversi-Turnier 30.5.2018 Deadline für Einreichung SONNTAG NACHT!!! Umfrage Bitte an Umfrage

Mehr

Informatik II - Übung 12

Informatik II - Übung 12 Informatik II - Übung 12 Katja Wolff katja.wolff@inf.ethz.ch Übungsblatt 11 1) Sortieren mit Suchbäumen 2) Zeitkomplexität 3) Ein neuer Rechner! 4) Ein Springer auf dem Schachbrett Informatik II Übung

Mehr

Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT

Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT Komplexität eines Algorithmus Algorithmen verbrauchen Ressourcen Rechenzeit

Mehr

Informatik II Übung 8 Gruppe 4

Informatik II Übung 8 Gruppe 4 Informatik II Übung 8 Gruppe 4 (Folien teils von Christian B. und Christelle G.) Lukas Burkhalter lubu@inf.ethz.ch Informatik II Übung 8 Lukas Burkhalter 24. April 2018 1 https://xkcd.com/1270/ Nachbesprechung

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.

Mehr

Informatik II - Tutorium 9

Informatik II - Tutorium 9 Informatik II - Tutorium 9 Vincent Becker vincent.becker@inf.ethz.ch 02.05.2018 Vincent Becker 02.05.2018 1 Übungsblatt 8 Vincent Becker 02.05.2018 2 U8.A1 Binäre Suche Suche nach 47 mi = li + (re-li)/2;

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen 1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Informatik II - Übung 08

Informatik II - Übung 08 Informatik II - Übung 08 Katja Wolff katja.wolff@inf.ethz.ch Übungsblatt 7 Informatik II Übung 08 26.04.2017 2 U7.A1: IFilter public ArrayList filterraw( ArrayList groups ) { ArrayList result = new ArrayList();

Mehr

Informatik II - Übung 07

Informatik 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

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Algorithmus Analyse. Johann Basnakowski

Algorithmus Analyse. Johann Basnakowski Algorithmus Analyse Johann Basnakowski Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg Gliederung Algorithmus

Mehr

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

13 Berechenbarkeit und Aufwandsabschätzung

13 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

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 3 (27.4.2014) O-Notation, Asymptotische Analyse, Sortieren III Algorithmen und Komplexität Selection Sort Algorithmus SelectionSort (informell):

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:

Mehr

Informatik II - Übung 08

Informatik II - Übung 08 Informatik II - Übung 08 Christian Beckel beckel@inf.ethz.ch 17.04.2014 U7.A1: IFilter public ArrayList filterraw( ArrayList groups ) dynamic ArrayList result = new ArrayList(); cast for( int i = 0; i

Mehr

Informatik II - Übung 07. Christian Beckel

Informatik II - Übung 07. Christian Beckel Informatik II - Übung 07 Christian Beckel beckel@inf.ethz.ch 15.04.2015 Heute Besprechung Blatt 06 Demo: Objektorientierte Programmierung Hinweise zu Blatt 07 Christian Beckel 15/04/15 2 Besprechung Übungsblatt

Mehr

II.3.1 Rekursive Algorithmen - 1 -

II.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 -

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 017/18 8. Vorlesung Sortieren mit dem Würfel! Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I - 5 Guten Morgen! Tipps für unseren ersten Test am Do,

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Informatik II Übung 5 Gruppe 3

Informatik 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

Mehr

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Datenstrukturen 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

Mehr

Übung Algorithmen und Datenstrukturen

Ü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

Mehr

Informatik II Übung 10. Pascal Schärli

Informatik II Übung 10. Pascal Schärli Informatik II Übung 0 Pascal Schärli pascscha@student.ethz.ch 09.0.0 Was gibts heute? Best-of Vorlesung: Teile und Herrsche Türme von Hanoi Mergesort O-Notation Vorbesprechung: U0A, - Mergesort U0A Türme

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 4 (7.5.2014) Asymptotische Analyse, Sortieren IV Algorithmen und Komplexität Erfahrungen 1. Übung C++ / Java sind komplett ungewohnt Struktur

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 4 (30.4.2018) Sortieren IV Algorithmen und Komplexität Analyse Merge Sort Laufzeit T(n) setzt sich zusammen aus: Divide und Merge: O n

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Ü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

Mehr

Datenstrukturen und Algorithmen (SS 2013)

Datenstrukturen und Algorithmen (SS 2013) Datenstrukturen und Algorithmen (SS 2013) Präsenzübung Musterlösung Dienstag, 28.05.2013 Aufgabe 1 (Allgemeine Fragen [20 Punkte]) 1. Tragen Sie in der folgenden Tabelle die Best-, Average- und Worst-Case-

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt

Mehr

Informatik II Übung 7 Gruppe 7

Informatik 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.

Mehr

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016 Algorithmen und Datenstrukturen 2 Übung 1 Stefan Florian Palkovits, BSc 0926364 e0926364@student.tuwien.ac.at 12. Juni 2016 Aufgabe 1: Es existiert eine Reduktion von Problem A auf Problem B in O(n 3 +

Mehr

Komplexität von Algorithmen OOPM, Ralf Lämmel

Komplexität von Algorithmen OOPM, Ralf Lämmel Ganz schön komplex! Komplexität von Algorithmen OOPM, Ralf Lämmel 885 Motivierendes Beispiel Algorithmus Eingabe: ein Zahlen-Feld a der Länge n Ausgabe: Durchschnitt Fragen: sum = 0; i = 0; while (i

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

Mehr

Komplexität von Algorithmen:

Komplexität von Algorithmen: Komplexität von Algorithmen: Ansatz: Beschreiben/erfassen der Komplexität über eine Funktion, zur Abschätzung des Rechenaufwandes abhängig von der Größe der Eingabe n Uns interessiert: (1) Wie sieht eine

Mehr

Informatik II Übung 10. Benjamin Hepp 10 May 2017

Informatik II Übung 10. Benjamin Hepp 10 May 2017 Informatik II Übung 10 Benjamin Hepp benjamin.hepp@inf.ethz.ch 10 May 2017 Nachbesprechung U9 10 May 2017 Informatik II - Übung 01 2 Nachbesprechung U9 1. Spieltheorie 2. Reversi Teil 3 (Vorbesprechung

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Am Freitag, 9. Juni 2006, erfolgt in der Vorlesung eine Zusammenfassung der Vorlesungsinhalte als Vorbereitung auf die

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 2 (22.4.2016) Sortieren II Algorithmen und Komplexität SelectionSort: Programm Schreiben wir doch das gleich mal als Java/C++ - Programm

Mehr

Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer

Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer Präsenzübung Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer Dienstag, 28. Mai 2013 Nachname: Vorname: Matrikelnummer: Studiengang:

Mehr

Backtracking mit Heuristiken

Backtracking mit Heuristiken Backtracking mit Heuristiken Thomas Dübendorfer thomas@duebendorfer.ch 14. September 2000 Inhalt und Ablauf 1. Einführendes Beispiel (4 min) 2. Konzepte zu Backtracking (8 min) 3. Eingesperrt im Labyrinth

Mehr

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). 8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Suchen und Amortisierte Analyse Heute: Suchen / Schreibtischtest Amortisierte Analyse Nächste

Mehr

Informatik II. Woche 15, Giuseppe Accaputo

Informatik II. Woche 15, Giuseppe Accaputo Informatik II Woche 15, 13.04.2017 Giuseppe Accaputo g@accaputo.ch 1 Themenübersicht Repetition: Pass by Value & Referenzen allgemein Repetition: Asymptotische Komplexität Live-Programmierung Aufgabe 7.1

Mehr

Übung Algorithmen I

Übung Algorithmen I Übung Algorithmen I 24.5.17 Sascha Witt sascha.witt@kit.edu (Mit Folien von Lukas Barth, Julian Arz, Timo Bingmann, Sebastian Schlag und Christoph Striecks) Organisatorisches Übungsklausur Am 21.06.2017

Mehr

Informatik II Übung 4 Gruppe 7

Informatik 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.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen A7. Sortieren III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 Untere Schranke Sortierverfahren Sortieren Vergleichsbasierte Verfahren Nicht vergleichsbasierte

Mehr

3. Übungsblatt zu Algorithmen I im SoSe 2017

3. Übungsblatt zu Algorithmen I im SoSe 2017 Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799

Mehr

Prüfung Algorithmen und Datenstrukturen I

Prüfung Algorithmen und Datenstrukturen I Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IF 3 B Wintersemester 2014/15 Prüfung Algorithmen und Datenstrukturen I Datum : 20.01.2015, 10:30 Uhr

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 011 Übungsblatt 30. Mai 011 Grundlagen: Algorithmen und Datenstrukturen

Mehr

Übung Algorithmen I

Übung Algorithmen I Übung Algorithmen I 20.5.15 Christoph Striecks Christoph.Striecks@kit.edu (Mit Folien von Julian Arz, Timo Bingmann und Sebastian Schlag.) Roadmap Organisation Mergesort, Quicksort Dual Pivot Quicksort

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Sortierverfahren 1. Schreibtischtest 2. Stabilität 3. Sortierung spezieller Arrays 4. Untere

Mehr

6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind.

6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind. Algorithmen und Datenstrukturen 132 6 Quicksort In diesem Abschnitt wird Quicksort, ein weiterer Sortieralgorithmus, vorgestellt. Trotz einer eher langsamen Worst-Case Laufzeit von Θ(n 2 ) ist Quicksort

Mehr

Anwendungsbeispiel MinHeap

Anwendungsbeispiel 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge

Mehr

A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.2 Quicksort. A7.

A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.2 Quicksort. A7. Algorithmen und Datenstrukturen 14. März 2018 A7. III Algorithmen und Datenstrukturen A7. III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 A7.1 Untere Schranke A7.2 Quicksort A7.3 Heapsort

Mehr

Komplexität von Algorithmen

Komplexität von Algorithmen Komplexität von Algorithmen Ziel Angabe der Effizienz eines Algorithmus unabhängig von Rechner, Programmiersprache, Compiler. Page 1 Eingabegröße n n Integer, charakterisiert die Größe einer Eingabe, die

Mehr

Probeklausur zur Vorlesung

Probeklausur 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

Mehr

Ziele. Kapitel 10: Komplexität von Algorithmen und Sortierverfahren. Beispiel: Lineare Suche eines Elements in einem Array (1)

Ziele. Kapitel 10: Komplexität von Algorithmen und Sortierverfahren. Beispiel: Lineare Suche eines Elements in einem Array (1) Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Ziele Kapitel 10: Komplexität von Algorithmen und Sortierverfahren Prof. Dr. David Sabel Lehr- und Forschungseinheit

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 7. Entrekursivierung

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 7. Entrekursivierung 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 Rekursive

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Sortierte Listen 2. Stacks & Queues 3. Teile und Herrsche Nächste Woche: Vorrechnen (first-come-first-served)

Mehr

Sortieren & Co. KIT Institut für Theoretische Informatik

Sortieren & Co. KIT Institut für Theoretische Informatik Sortieren & Co KIT Institut für Theoretische Informatik 1 Formaler Gegeben: Elementfolge s = e 1,...,e n Gesucht: s = e 1,...,e n mit s ist Permutation von s e e 1 n für eine Totalordnung ` ' KIT Institut

Mehr

Algorithmen. Sortieren durch Auswählen, Sortieren durch Mischen und Vergleich der Laufzeit. Abschätzung der Laufzeit eines Algorithmus, O-Notation.

Algorithmen. Sortieren durch Auswählen, Sortieren durch Mischen und Vergleich der Laufzeit. Abschätzung der Laufzeit eines Algorithmus, O-Notation. Algorithmen Sortieren durch Auswählen, Sortieren durch Mischen und Vergleich der Laufzeit Abschätzung der Laufzeit eines Algorithmus, O-Notation. Rekursion Einführung in die Informatik: Programmierung

Mehr

Rekursive Funktionen und ihre programmtechnische Umsetzung

Rekursive Funktionen und ihre programmtechnische Umsetzung Rekursive Funktionen und ihre programmtechnische Umsetzung Klaus Kusche, Juli 2012 Inhalt Die Idee und ihre Programmierung Die Abarbeitung zur Laufzeit Die Speicherung der Daten Praktisches & Theoretisches

Mehr

Übung Algorithmen und Datenstrukturen

Ü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

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr. Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Fortgeschrittene Datenstrukturen Such-Algorithmen

Mehr

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Ü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

Mehr

Algorithmen und Datenstrukturen 1 Kapitel 5

Algorithmen und Datenstrukturen 1 Kapitel 5 Algorithmen und Datenstrukturen 1 Kapitel 5 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 5: Effizienz von Algorithmen 5.1 Vorüberlegungen Nicht

Mehr

Rekursive Funktionen

Rekursive Funktionen Um Rekursion zu verstehen, muss man vor allem Rekursion verstehen. http://www2.norwalk-city.k12.oh.us/wordpress/precalc/files/2009/05/mona-lisa-jmc.jpg Rekursive Funktionen OOPM, Ralf Lämmel Was ist Rekursion?

Mehr

Informatik II Übung 08

Informatik II Übung 08 Informatik II Übung 08 Michael Baumann mbauman@student.ethz.ch n.ethz.ch/~mbauman 27.04.2016 Ablauf 1) Nachbesprechung Serie 7 2) Backtracking 3) Vorbesprechung Serie 8 2 Serie 7 3 Aufgabe 1 Wir Gegner

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 2 (23.4.2018) Sortieren II, Asymptotische Analyse, O-Notation Algorithmen und Komplexität Laufzeit Zeitmessung SelectionSort n 2 Laufzeit/n

Mehr

Java. public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; Java

Java. public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; Java Einführung Elementare Datenstrukturen (Folie 27, Seite 15 im Skript) Java Java public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; } protected Listnode K, D findnode(k

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 9.6.2017 Giuseppe Accaputo g@accaputo.ch 1 Aufbau des PVK Tag 1: Java Teil 1 Tag 2: Java Teil 2 Tag 3: Algorithmen & Komplexität Tag 4: Dynamische Datenstrukturen,

Mehr

Informatik II Übung 2. Pascal Schärli

Informatik 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

Mehr

Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren

Rekursion. 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

Mehr

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen Willkommen zur Vorlesung Algorithmen und Datenstrukturen Mein Name: Andreas Berndt Zum Dozenten Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen Derzeitige Sprachen:

Mehr

Kapitel 5: Dynamisches Programmieren Gliederung

Kapitel 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

Mehr

Abschnitt 19: Sortierverfahren

Abschnitt 19: Sortierverfahren Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758

Mehr

Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Rekursion vs. Iteration, Sortieren

Rekursion. 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

Mehr

Programmieren und Problemlösen

Programmieren und Problemlösen Dennis Komm Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 27. Februar 2019 Komplexität von Algorithmen Aufgabe Primzahltest Schreibe ein Programm, das eine ganze Zahl x als Eingabe

Mehr

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr 3. Binäre Suchbäume 3.1 Natürliche binäre Suchbäume Definition 18 Ein natürlicher binärer Suchbaum über einem durch total geordneten Universum U ist ein als interner Suchbaum organisierter Binärbaum (also:

Mehr

Übung Algorithmen und Datenstrukturen

Ü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

Mehr

Algorithmen und Datenstrukturen 1-3. Seminar -

Algorithmen und Datenstrukturen 1-3. Seminar - Algorithmen und Datenstrukturen 1-3. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Outline Spezielle Listen: Stacks, Queues Sortierverfahren 3. Übungsserie Wiederholung:

Mehr

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Sortieralgorithmen Einleitung Heapsort Quicksort 2 Motivation Sortieren ist Voraussetzung für viele Anwendungen Nach

Mehr

Konvexe Hülle im R 3 + WSPD

Konvexe Hülle im R 3 + WSPD Übung Algorithmische Geometrie Konvexe Hülle im R 3 + WSPD LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Andreas Gemsa 12.07.2012 Ablauf Konvexe Hülle im R 3

Mehr

Informatik II, SS 2014

Informatik 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

Mehr