Algorithmen und Programmierung III

Ähnliche Dokumente
Lösung: Datenstrukturen und Algorithmen SS17 Lösung - Klausur

Musterlösung. Testklausur Vorkurs Informatik, Testklausur Vorkurs Informatik Musterlösung. Seite 1 von 10

11 Divide-and-Conquer und Rekursionsgleichungen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (02 Funktionenklassen) Prof. Dr. Susanne Albers

3 T (d 1, l 2. ) + (6 + 2) falls d > 0 7 sonst. n 2. 4T ( n 2 ) + log 2 (n), falls n > 1 1, sonst

Folgen und Reihen. 23. Mai 2002

Übersicht. Datenstrukturen und Algorithmen. Rekursionsgleichungen. Übersicht. Vorlesung 6: Mastertheorem (K4) Joost-Pieter Katoen

Tutoraufgabe 1 (Rekursionsgleichungen):

Grundlagen: Algorithmen und Datenstrukturen

n=0 f(x) = log(1 + x) = n=1

6. Übung - Differenzengleichungen

1 Randomisierte Bestimmung des Medians

Der Groß-O-Kalkül. Additionsregel. Zunächst ein paar einfache "Rechen"-Regeln: " ": Sei. Lemma, Teil 2: Für beliebige Funktionen f und g gilt:

n 2(a + bx i y i ) = 0 und i=1 n 2(a + bx i y i )x i = 0 i=1 gilt. Aus diesen beiden Gleichungen erhalten wir nach wenigen einfachen Umformungen

Dritter Zirkelbrief: Ungleichungen

1. Übungsblatt zu Algorithmen II im WS 2016/2017

Fit in Mathe. April Klassenstufe 10 Wurzelfunktionen

Wörterbuchmethoden und Lempel-Ziv-Codierung

Analysis ZAHLENFOLGEN Teil 4 : Monotonie

II. Grundlagen der Programmierung. Variable: Literale (Konstanten) Operatoren & Ausdrücke. Variablendeklaration:

Info2 Übungsstunde 5. Agenda. Lösungen U4. Java... more insights. Tipps zur Übung 5

Asymptotische Notationen

Handout 2. Divide et impera Veni, vidi, vici Julius Caesar

Kapitel 10. Rekursion

Zusammenfassung: Gleichungen und Ungleichungen

Es gibt verschiedene Möglichkeiten eine Folge zu definieren. Die zwei häufigsten Methoden

LGÖ Ks VMa 12 Schuljahr 2017/2018

HEUTE. Beispiele. O-Notation neue Einführung Ideen und Eigenschaften Aufgaben 47 und 52

Vorkurs Mathematik für Informatiker Folgen

Positiv denken! Lösungen

3 T (d 1, l 2. ) + (6 + 2) falls d > 0 7 sonst. n 2. 4T ( n 2 ) + log 2 (n), falls n > 1 1, sonst

3 Grenzwerte. 3.1 Grenzwerte von Folgen

Lösungsskizzen Mathematik für Informatiker 6. Aufl. Kapitel 4 Peter Hartmann

Zusammenfassung: Gleichungen und Ungleichungen

Algorithmentheorie Randomisierung

Übungen zur Analysis 1 für Informatiker und Statistiker. Lösung zu Blatt 8

10 Aussagen mit Quantoren und

TECHNISCHE UNIVERSITÄT MÜNCHEN

Höhere Mathematik für die Fachrichtung Physik

Probeklausur. (b) Was geschieht, wenn man ein Quantenbit in einem solchen Zustand misst?

Lösungsskizzen Mathematik für Informatiker 5. Aufl. Kapitel 3 Peter Hartmann

1 Einführende Worte 2

Rekursion und Dateioperationen

Aufgaben zur Übung und Vertiefung

6. Übungsblatt Aufgaben mit Lösungen + Selbsttest-Auflösung

Übung 2 (für Pharma/Geo/Bio) Uni Basel. Besprechung der Lösungen: 1. Oktober 2018 in den Übungsstunden

Kapitel 11. Rekursion

+ a 3 cos (3ωt) + b 3 sin (3ωt)

Übungen zur Analysis I WS 2008/2009

Basisfall Vergleichsbasiertes Sortieren Programmieraufgabe Algorithm Engineering

Software Engineering I. Musterlösungen zur Hauptklausur vom Aufgabe 1

Tutorium Mathematik I, M Lösungen

( ), der genau auf der Geraden ( ) 2 ( ) #( ) 8. Lineare Regression. = f i. Nach der Summe der kleinsten. mx i

Teil VII : Zeitkomplexität von Algorithmen

Teil VII : Zeitkomplexität von Algorithmen

Dynamisches Programmieren Stand

HA-Lösung TA-Lösung Diskrete Strukturen Tutoraufgabenblatt 13. Besprechung in KW05/2018

Einführende Beispiele Arithmetische Folgen. Datei Nr SW. Das komplette Manuskript befindet sich auf der Mathematik - CD.

von solchen Abbildungen. Eine solche Folge bestimmt für jedes x M die Folge der Werte f n. Schreibt man dies noch einmal formal hin, so erhält man:

Kapitel 11. Rekursion

( 1) n a n. a n 10. n=1 a n konvergiert, dann gilt lim a n = 0. ( 1) n+1

Klausur 1 über Folgen

Musterlösung zu Übungsblatt 2

Höhere Mathematik I für die Fachrichtungen Elektroingenieurwesen, Physik und Geodäsie Lösungsvorschläge zum 4. Übungsblatt

2 Asymptotische Schranken

Nicht-Anwendbarkeit des Master- Theorems

Vorkurs Mathematik für Informatiker Potenzen und Polynome --

Prüfungsaufgaben der Abschlussprüfung an Realschulen in Bayern! mit ausführlichen Musterlösungen. und Querverweise auf Theoriedateien der Mathe-CD

Algorithmen und Datenstrukturen

Zahlenfolgen und Konvergenzkriterien

Aufgabe G 1.1. [Vollständige Induktion, Teleskopsumme] n k 3 = n N : k(k + 1) = 1 1

Informatik II Übung 10

Demo-Text für INTERNETBIBLIOTHEK FÜR SCHULMATHEMATIK. ANALYSIS Vollständige Induktion FRIEDRICH W.

Lösungen 4 zum Mathematik-Brückenkurs für alle, die sich für Mathematik interessieren

Monotonie einer Folge

Lösungen zur Präsenzübung 6

LV "Grundlagen der Informatik" Programmierung in C (Teil 2)

Fakultät und Binomialkoeffizient Ac

Prof. Dr. Wolfgang Konen Mathematik 1, WS Wozu InformatikerInnen Folgen brauchen

TECHNISCHE UNIVERSITÄT MÜNCHEN

Vorkurs Mathematik für Informatiker Folgen

Quantensuchalgorithmen

Arithmetische und geometrische Folgen. Die wichtigsten Theorieteile. und ganz ausführliches Training. Datei Nr

Informatik II Dynamische Programmierung

x = a + b α + β. b) Wir erweitern den Bruch geeignet (Standardtrick: z z ist reell, daher ergibt 1/z = 1/z z/ z = z/(z z) einen reellen Nenner):

Mathematik 1 für Informatik

Sortieren DNA-Array oder DNA-Chip

Nachtrag. Alternatives Buch zum Satz von Fermat 1999 bei amazon nur noch gebraucht

Aufgaben zu Kapitel 8

Kreisabbildungen. S 1 f S 1. Beispiele: (1) f = id, F = id,

Lösungen zum Ferienkurs Analysis 1, Vorlesung 2 Wintersemester 2014/2015

Algorithmen und Datenstrukturen 1 VU Übungstest SS April 2012

Mathematische Rekursion. Rekursion. Rekursion in C++ Mathematische Rekursion. Definition. 1, falls n 1. n! = n (n-1)!, falls n > 1

Für eine n n-matrix A müssen wir die Gleichung. lösen. Falls (A λi) invertierbar ist, dann ist. Dann ist aber λ kein Eigenwert.

Analysis 1, Woche 2. Reelle Zahlen. 2.1 Ordnung. Definition 2.1 Man nennt eine Ordnung für K, wenn. 1. für alle a K gilt a a (Reflexivität),

Transkript:

Musterlösug zum 13. Aufgabeblatt zur Vorlesug WS 006 Algorithme ud Programmierug III Aufgabe 1 Rekursios Gleichuge (Autor: Christia Grümme 10 Pukte (a Zuächst führe ich ei paar Rekursioe durch: T ( = 4T ( + = 4 (4T ( 4 + + = 4 T ( + 4 + = 4 (4T ( 3 + + 4 + = 4 3 T ( 3 + 4 + 4 + Nu vermute ich folgede Regelmäßigkeit beim k. Rekursiosschritt: k 1 T ( = 4 k T ( k + Das bestätige ich u Iduktiv: k 1 T ( = 4 k (4T ( (k + 1 + + k 1 = 4 k+1 T ( (k + 1 + 4 k + = 4 k+1 T ( (k + 1 + k Führe die Rekursioe bis zum Rekursiosaker T (0 fort (Aahme: ist grade: 1 ( T ( = 4 T + = 4 1 T (0 + Geometrische Reihe = ( 4 T (0 + 4 1 4 1 = T (0 + 3 + 3

Der eideutig domiate Summad ist 4 =. T ( Θ ( {k k N} Da wir o.b.d.a. aehme köe, dass T ( mooto wächst, gilt k N: Θ ( T (k T (k + 1 T ( (k + 1 Θ ( T ( Θ ( N (b Ich vermute folgede Regelmäßigkeit beim k. Rekursiosschritt: ( T ( = T + log Das bestätige ich u Iduktiv: T ( = = T ( k 1 = T + log k i ( ( k 1 T + log k+1 + log k i ( k+1 + k log i Führe die Rekursioe bis zum Rekursiosaker T (1 fort (Aahme: ist Zweierpotez: T ( = T ( = T + ( log ( 1 + log log i log ( 1 = T (1 + (log (log = T (1 + (log ( log log i log ( 1 log ( 1 (i ( log i Gauß sche Summe = T (1 + (log log ( (log ( 1 = T (1 + 1 (log + 1 log Der eideutig domiate Summad ist (log ud ka ich jetzt aalog zu obe N sage: T ( Θ ( (log

(c Zuächst führe ich wieder ei paar Rekursioe durch: ( T ( = T + ( 4 ( ( = T + + 4 4 ( ( = T + + 4 4 ( ( ( = (T + + + 4 3 4 4 ( ( ( = 3 T + + + 4 3 4 4 Ich vermute folgede Regelmäßigkeit beim k. Rekursiosschritt: Das bestätige ich u Iduktiv: ( k 1 T ( = k T + i 4 k 4 i T ( = k (T = k+1 T = k+1 T = k+1 T ( k 1 = k T + i 4 k 4i ( k 1 = k T + 4 k 3i ( ( k 1 + + 4 k+1 4 k 3i ( + k 4 k+1 4 + k 1 k 3i ( + k 4 k+1 + k 1 4k 3i ( 4 k+1 + Führe die Rekursioe bis zum Rekursiosaker T (1 fort (Aahme: ist Viererpotez: k 3i ( T ( = log 4 ( T + 4 log 4 ( = log 4 T log 4 ( 1 ( log 4 ( 1 + Die Summe etspricht de Afagsglieder der geometrische Reihe, welche durch beschräkt ist. Sei u log 4 ( 1 i = d <. ( 1 8 T ( = T (1 + d ( 1 8 3i i

Der eideutig domiate Summad ist ud u ka ich wieder aalog zu obe N sage: T ( Θ ( Aufgabe Geerische Schittstelle Hashtabelle (Autor: Olufemi Rosawo 10 Pukte Beschreibt eie Datetype mit eier Hashfuktio, die ei Ergebis vom Typ K liefert. Dies macht keie Aussage darüber auf welchem Typ der Hashwert berechet wird, soder ur, wie das Ergebis vo hash aussieht. Häufige Fehler: hash(k key ist uötig, da der Hashwert auf dem Objekt selbst berechet werde soll. Eie hash-methode mit eiem Argumet legt eie static Methode ah, die aber im iterface icht ausgedrückt werde ka. 1 public iterface Hashable <K> { public K hash (; 3 } iterface Hashtable Beispiel-Implemetatio eies Datetyps, desse Hashfuktio float Werte zurückgibt. Ma beachte, dass icht der Typ (=Schlüssel im HashTable selbst Float sei muss, soder ur das Ergebis vo hash. class FloatHashable 1 class FloatHashable implemets Hashable < Float > { 3 Strig value ; 4 5 public Float hash ( { 6 float ret = 0; 7 float factor = 1.1 f; 8 for ( char c: value. tochararray ( { 9 ret += c *1.1 f; 10 factor += 0.1 f; 11 } 1 retur ret ; 13 } 14 } HashTable fuer Schlüssel/Wert Paare Die Schlüssel müsse icht vom gleiche Typ sei, soder ur Utertype vo Hashable sei. Ma beachte, dass zwar ei gemeisamer ge. Typ K für alle Schlüssel agegebe wird, durch die wildcard i de Methode-Sigature ka aber bei jedem Aufruf auch ei Utertyp vo K beutzt werde. Häufige Fehler: HashTable< > exteds Hashable< > sagt aus, dass der HashTable selbst Hashable ist, was weig Si ergibt. HashTable<K exteds Hashable<K>, V> ist zwar soweit richtig, schräkt aber uötigerweise alle Schlüssel auf eie Type ei.

iterface HashTable 1 public iterface HashTable <K, V> { 3 public void isert ( Hashable <? exteds K> key, V value ; 4 public void remove ( Hashable <? exteds K> key ; 5 public V search ( Hashable <? exteds K> key ; 6 } Alterative Lösug, da die Aufgabestellug wohl etwas schwammig war. Hierbei ist der Rückgabewert der Hashfuktio stets it, daher stellt sich die Frage ach der Kompatibilität icht. 1 public iterface Hashable { public it hash (; 3 } class Hashable A dieser Stelle stößt der simple Asatz a seie Greze, da ma icht mehr typsicher ausdrücke ka, dass es sich um eie Implemetatio für float Werte hadelt. Vo der Klasse Float zu erbe wäre hier zwar die richtige Idee, fuktioiert aber icht, da Float eie fial Klasse ist. class FloatHashable 1 class FloatHashable implemets Hashable { Float value ; 3 public it hash ( { 4 retur Float. floattoitbits ( value ; 5 } 6 } Alterativer Hashtable class HashTable 1 public iterface HashTable <V> { 3 public void isert ( Hashable key, V value ; 4 public void remove ( Hashable key ; 5 public V search ( Hashable key ; 6 } Aufgabe 3 Geordete Wörterbücher (Autor: Alexader Pepper 10 Pukte Zähle sie vier Datestrukture für das geordete Wörterbuchproblem ud die asymptotische Laufzeit der dafür relevate Operatioe auf. Erkläre sie jeweils grob, i höchstes zwei Sätze, wie die Wörterbuchdate i der etsprechede Struktur orgaisiert sid. Lösug: Geordete Wörterbücher zeiche sich dadurch aus, dass sie icht ur wie ormale Wörterbücher, eie Wert uter eie Schlüssel ablege ud wieder abrufbar mache, soder dass sie auch Vorgäger ud Nachfolger eies Wertes (z.b. lexikographisch ausgebe köe.

Wichtige Fuktioe: void isert (K key, V value; void delete (K key; V lookup (K key; oder V search (K key; K ext (K key; //Nachfolgeschlüssel zu key K prev (K key; //Vorgägerschlüssel zu key Beispielaweisuge: 1 isert (" home ", " Zuhause "; isert (" star ", " Ster "; 3 isert (" light ", " Licht "; sert (" music ", " Musik "; 5 lookup (" light "; // retur : " Licht " 6 ext (" light "; // retur : " music " 7 prev (" light "; // retur : " home " Beispiel: Geordetes Wörterbuch Laufzeite (AC = Average Case, WC = Worst Case: isert delete search ext prev Liste O( O( O( O( O( Array O( O( O(log O(log O(log [bi. Suche] [bi. Suche] [bi. Suche] Biärbaum AV: O(log AV: O(log AV: O(log AV: O(log AV: O(log WC: O( WC: O( WC: O( WC: O( WC: O( -4 Baum O(log O(log O(log O(log O(log Rot-Schwarz O(log O(log O(log O(log O(log Baum Array AC: O(1 AC: O(1 AC: O(1 Θ( Θ( mit Hash WC: O( WC: O( WC: O( Die Strukture im Eizele: Doppelt Verkette Liste Jeder Datesatz (Key ud Value werde i eiem Objekt gespeichert, was eie Zeiger auf Vorgäger ud de Nachfolger habe. Der Zeiger auf de Nachfolger zeigt da immer auf de ächste Datesatz desse Key größer ist als der Key des aktuelle Datesatzes. Dyamisch wachsedes/schrumpfedes Array Der Datesatz wird sortiert i eiem Arrayfeld gespeichert. Falls mehr Datesätze als Arrayfelder vorhade sid, wird das Array vergrößert ud die alte Datesätze umkopiert. Biärer Suchbaum Jeder Datesatz ist ei Kote i eiem biäre Baum, desse likes Kid immer eie kleiere Key hat, als er Vater-Kote ud desse rechtes Kid aalog immer größer ist. Dieser Baum ka ubalaciert sei ud somit eie Worst-Case-Laufzeit vo O( habe. -4 Baum Balacierter Baum, der pro Kote bis zu drei Datesätze geordet speichert ud

zwei bis vier Kider hat (jeweils geordet. Im Vergleich zu Biäre Suchbäume ist dieser Baum immer balaciert ud hat deshalb eie Laufzeit vo O(log. Rot-Schwarz Baum Jeder Kote ist etweder Schwarz oder Rot. Wurzel ud jedes Blatt ist schwarz. Niemals dürfe zwei Kote hitereiader Rot sei. Wie der -4 Baum balaciert ud hat deshalb eie Laufzeite vo O(log. Array mit Hash-Fuktio Zu jedem Key wird mit eier Hash-Fuktio ei Hash-Wert errechet, der eiem Idex im Array eispricht. A dieser Stelle wird da der Datesatz gespeichert. Falls mehr als ei Datesatz i eiem Arrayfeld liegt (Kollisio, werde sie i eier (usortierte eifach-verkettete Liste gespeichert. Diese Datestruktur wird eigetlich für ormale Wörterbücher gebraucht. Adere Datetype, die aber für das geordete Wörterbuch ugeeiget sid: Warteschlage (Queue Gibt ur das Elemet aus, was am Lägste i der Warteschlage ist (removehead. Prioritätswarteschlage Biär-Heap Biomial-Heap Gibt ur das Elemet mit der iedrigste Priorität (getmi aus. Stack Gibt ur das Elemet aus (pop, was als letztes hizugefügt (push wurde. Aufgabe 4 Biäre Suchbäume (Autor: Max Neuma 10 Pukte Aufgabe: Biäre Suchbäume Im Allgemeie ist das Vereiige vo zwei biäre Suchbäume B 1, B zu eiem eizige icht effizieter möglich, als alle Kote eies Baumes i de adere eizufüge. Was wäre die Laufzeit dieses Vorgehes? Etwerfe Sie eie Algorithmus, der de spezielle Fall, dass alle Kote vo B eie größere Wert habe, als alle vo B 1, effiziet erket ud aschließed möglichst effiziet B 1 ud B zu eiem biärem Suchbaum vereiigt. Aalysiere Sie die asymptotische Laufzeit Ihres Algorithmus i Abhägigkeit vo der Baumhöhe. Hiweis: Der Algorithmus darf B 1 ud B zerstöre, d.h. ach dem Algorithmus müsse B 1, B icht mehr i ihrer ursprügliche Struktur erhalte sei. Lösug: Das Zusammemische zweier biärer Suchbäume zu eiem ist i O( möglich. Im schlimmste Fall beihaltet jeder Baum Elemete ud ist etartet. Somit muss mal i eie Tiefe vo midestes eigefügt werde, was i O( liegt. Nu soll der Spezialfall erkat werde, i dem alle Elemete aus B größer sid als die Elemete aus B 1. Wie i Abb. zu sehe ist ka i O(h Zeit das kleiste ud größte Elemet der beide Bäume bestimmt werde idem ma sich immer rechts

Abbildug 1: Suchbäume vor dem Zusammefüge (liks hält bis es icht mehr weiter geht. Ist u biggest i T1 immer och kleier als smallest i T, so wisse wir, dass auch alle adere Kote im eie Baum kleier als alle Kote des adere Baumes sid. Abbildug : Suchbäume ach dem Zusammefüge Um die beide Bäume zu vereiige wird, wie i Abb. zu sehe ist, der kleiste Kote aus B gelöscht ud als eue Wurzel eigesetzt, mit B 1 als like ud B als rechte Soh. Die beötigte Zeit hägt ur vo der Zeit ab, die ma beötigt um de kleiste Kote aus dem Baum zu etfere. Das Fide geschieht i O(h Schritte ud für das Umhäge der Zeiger beötige wir kostate Zeit. Die Gesamtzeit liegt also i O(h.

Algorithmus 1 : MergeBiSearchTree(T1, T 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 #temporäre Variable iitialisiere biggestt1 T1 smallestt T #größtes ud kleistes Elemet bestimme while (biggestt1.right leer biggestt1 biggestt1.right while (smallestt.left leer smallestt smallestt.left #prüfe ob B 1 < B if (biggestt1 smallestt mergenormal(t1, T #Neue Wurzel eihäge else smallestt.father.left smallestt.right smallest.left T1 smallest.right T #Rückgabe des eue Wurzelkotes retur smallestt