Algorithmen und Datenstrukturen

Ähnliche Dokumente
Tutoraufgabe 1 (2 3 4 Bäume):

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

Programmieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers Aufgabenblatt 3

Muster. Informatik 3 (Februar 2004) Name: Matrikelnummer: Betrachten Sie den folgenden Suchbaum. A G H J K M N

Tutoraufgabe 1 (Vollständige Induktion): Tutoraufgabe 2 (Rotationen): Datenstrukturen und Algorithmen SS15 Übungsblatt 5 (Abgabe 3.6.

Tutoraufgabe 1 (Listen):

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Informatikgrundlagen (WS 2016/2017)

Klausur Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen

Institut für Programmierung und Reaktive Systeme 5. Dezember Programmieren I. 5. Übungsblatt

Algorithmen und Datenstrukturen Klausur WS 2006/07 Software-Engineering und Technische Informatik Bachelor

Grundlagen: Algorithmen und Datenstrukturen

Organisation: Algorithmische Mathematik WiSe 2013/2014

Programmierkurs Java

Einführung in die Programmierung WS 2009/10. Übungsblatt 7: Imperative Programmierung, Parameterübergabe

Algorithmen & Datenstrukturen 1. Klausur

Sie müssen den Test bis 20:00 Uhr am Abgabetag dieses Übungszettels absolviert haben.

Institut für Programmierung und Reaktive Systeme 24. Juni Programmieren II. 14. Übungsblatt

Übungsblatt 7. Thema: Sortieren, Objektorientierung

EndTermTest PROGALGO WS1516 A

Institut für Programmierung und Reaktive Systeme 27. Mai Programmieren II. 12. Übungsblatt

Vorlesung Berechenbarkeit und Komplexität Wintersemester 2016/17. Wer sind wir? Willkommen zu

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Übung Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen

WiMa-Praktikum 1. Woche 8

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -

Übungen zur Vorlesung Mathematik für Informatiker 1 Wintersemester 2013/14 Übungsblatt 11

Übungsblatt 11. Thema: Algorithmen und Datenstrukturen: Bäume

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Spezielle Sortierverfahren Autor: Sven Schuierer

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übung: Algorithmen und Datenstrukturen SS 2007

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Informatik B Sommersemester Musterlösung zur Klausur vom

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

NAME, VORNAME: Studiennummer: Matrikel:

Einführung in die Programmierung

1. Einführung. Programmieren 1 / Algorithmen und Datenstrukturen. Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Sommersemester 2010

Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015

TU Kaiserslautern. Übungsblatt 2: Software-Entwicklung 1 (WS 2017/18) Hinweise zu Einreichaufgaben. Hinweise zu den Übungen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Einführung in die Programmierung. Organisatorisches. Skript zur Vorlesung Einführung in die Programmierung

Punkte. Teil 1. Teil 2. Summe. 1. Zeigen Sie, dass der untenstehende Suchbaum die AVL-Bedingung verletzt und überführen Sie ihn in einen AVL-Baum.

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

II.3.1 Rekursive Algorithmen - 1 -

Algorithmen und Datenstrukturen 1 VL Übungstest WS Januar 2011

PIWIN 1 Übung Blatt 5

EPROG 2.Teilprüfung. Aufgabe 1:

Vorlesung Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2015

AuD-Tafelübung T-B5b

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Algorithmen und Berechnungskomplexität I

Vorname:... Matrikel-Nr.:... Unterschrift:...

Datenstrukturen und Algorithmen D-INFK

Algorithmen und Komplexität

Einführung in die Informatik

Vorlesung Datenstrukturen

Algorithmen & Datenstrukturen Midterm Test 2

Tutoraufgabe 1 (2 3 4 Bäume):

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Schöner Programmieren

Logik für Informatiker

1. Einführung. Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen?

Allgemeine Informatik 2 im SS 2007 Programmierprojekt

Logik für Informatiker

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

ADS. 1. Vorlesung. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Algorithmen und Datenstrukturen 1 Kapitel 3

Tutoraufgabe 1 (Programmanalyse):

Klausur "ADP" SS 2015

Name:... Vorname:... Matrikel-Nr.:... Unterschrift:...

Hardwarearchitekturen und Rechensysteme

Allgemeine Informatik 1

Physik I Dynamik der Teilchen und Teilchensysteme

Übungen zur Vorlesung Datenstrukturen und Algorithmen SS 2006 Blatt 13

Inhalt. PROLOG-1A: Mathematik? PROLOG-1B: Aussagen. PROLOG-2: Mengen, Funktionen. PROLOG-3A: Mathematik in Semestern 1+2

Transkript:

Prof. Dr. V. Linnemann Lübeck, den 12. Mai 2010 Universität zu Lübeck Institut für Informationssysteme Algorithmen und Datenstrukturen Sommersemester 2010 6. Übungsblatt Lösungen Lösung 1: Optimale Matrixmultiplikation In der Vorlesung wurde im Abschnitt 1.2 ab der Folie 32 ein Algorithmus im Pseudocode entwickelt, der eine optimale Auswertungsreihenfolge für ein Matrixprodukt M 1... M n berechnet. In dieser Aufgabe sollen Sie den Algorithmus in Java realisieren. Die optimale Auswertungsreihenfolge soll als Text ausgegeben werden. Realisieren Sie eine Methode public static String matrixoptimierung(int[] r) die die Dimensionen der Matrizen gemäß Algorithmus der Vorlesung als Parameter übergeben bekommt und die die optimale Klammerung sowie die Anzahl der benötigten Multiplikationen bei dieser Auswertungsreihenfolge als Zeichenkette abliefert. Beispiel: int [] r = {10,20,,1,100}; System.out.println(matrixoptimierung(r1)); liefert als String-Wert: (M[1]*(M[2]*M[3]))*M[4], Aufwand: 2200 Operationen Für die Generierung der optimalen Klammerung aus den vom Algorithmus berechneten k i,j - Werten bietet sich eine rekursive Methode an. Scheiben Sie eine entsprechende main - Methode und testen Sie Ihre Methode an 2 Beispielen, wovon eins das Beispiel der Vorlesung sein soll. Achten Sie auf ausreichend Kommentar. (20 Punkte) Lösung: Siehe BlueJ-Projekt Uebung06-Loesung 1/6

Lösung 2: AVL-Bäume Abbildung 1: Ausgangsbaum für Aufgabenteil a) 59 21 Abbildung 2: Ausgangsbaum für Aufgabenteil b) a) Fügen Sie in den Ausgangsbaum für a) die Knotenliste 20,,17,61 ein. Zeichnen Sie dabei den AVL-Baum nach jedem Einfüge- und nach jedem Rotationsvorgang. Schreiben Sie die zugehörigen Fallbezeichnungen aus dem Vorlesungsalgorithmus daneben! (5 Punkte) b) Löschen Sie in dem Ausgangsbaum für b) die Knotenliste 59,,,21,. Zeichnen Sie dabei den AVL-Baum nach jedem Lösch- und nach jedem Rotationsvorgang. Schreiben Sie die zugehörigen Fallbezeichnungen aus dem Vorlesungsalgorithmus daneben! (5 Punkte) Lösung: 2/6

20 Einfügen der 20, Fall (a1) 20 Einfügen der, Fall (a2),(a2),(a1) R Rotation um 20 2 20 17 Einfügen der 17, Fall (a2),(a3) mit Rechts-Rotation 3/6

R Rotation um +2 1 +2 61 +1 61 L Rotation um 61 Einfügen der 61, Fall (a2),(b3) mit Rechts-Links-Rotation 4/6

21 Löschen der 59, Fall 2 1 2 R Rotation um 21 21 Löschen der, Fall 4, 6a mit Rechts-Rotation 21 Löschen der, Fall 5 Löschen der 21, Fall 1, 2 5/6

+2 L Rotation um Löschen der, Fall 3b mit Links-Rotation Hinweise Lösungen für die Übungsaufgaben sind (in der Regel) zu zweit abzugeben. Die erste Seite muss oben rechts den Namen des Abgebenden sowie die Gruppennummer enthalten. Lösungen ohne Gruppennummer werden mit 0 Punkten bewertet die Personen, die eine Lösung abgeben, müssen der gleichen Gruppe angehören. Lösungen mit mehreren Gruppennummern werden mit 0 Punkten bewertet Die Einteilung der Übungsgruppen erfolgt über die Anmeldung unter http://www.informatik-vor-2009.uni-luebeck.de/veranstaltungen/. Dieser Link ist auch über die Übungsseite der Vorlesung erreichbar. Zertifikatskriterium: Für das Zertifikat sind % der erreichbaren Punkte bei den Übungsaufgaben, einmaliges Vorrechnen in der Übung und das Bestehen der Klausur am Ende des Semesters erforderlich. Die Benotung des Zertifikats wird ausschließlich durch die Note in der Klausur bestimmt. Lösungen für Programmieraufgaben sind zusätzlich per Email einzureichen. Senden Sie Ihre Quelldateien hierzu an die passende Abgabe-Emailadresse. Die Emailadresse lautet aud?@ifis.uni-luebeck.de, wobei Sie das? durch Ihre Gruppennummer ersetzen. Fügen Sie dem Betreff Ihrer Abgabemail unbedingt die Gruppennummer und die Nummer des Übungsblattes hinzu. Papierabgaben ohne Emaileinreichung bzw. Emails ohne Papierabgabe werden nicht gewertet. Abgabetermin: Mittwoch, den. Mai bis 11 Uhr im Institut für Informationssysteme, 2. OG im Informatik-Neubau (Küche neben Sekretariat) 6/6