Algorithmen und Datenstrukturen II

Ähnliche Dokumente
Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Übungen zu Algorithmentechnik WS 09/10

Algorithmen und Datenstrukturen

Präsenzübung Datenstrukturen und Algorithmen SS 2014

Klausur Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen

Tutoraufgabe 1 (Sortieralgorithmus):

Übung Algorithmen und Datenstrukturen

f 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2

Übung Algorithmen und Datenstrukturen

Übung: Algorithmen und Datenstrukturen SS 2007

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

Klausur Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen

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

Algorithmen und Datenstrukturen 12

Heapsort. Dr. Michael Brinkmeier (TU Ilmenau) Algorithmen und Datenstrukturen / 50

Übung Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

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

Übung Algorithmen und Datenstrukturen

Algorithmik Kap. 2: Laufzeit von Algorithmen

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

Suchen und Sortieren

Klausur Algorithmen und Datenstrukturen II 10. August 2015

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen II

Übung Algorithmen und Datenstrukturen

Übung Datenstrukturen. Sortieren

Algorithmen und Datenstrukturen

2 Sortieren durch Vergleichen Eingabefolge a 1, a 2,..., a n 2, 1, 3 Sortieralg. Für festes n ist ein vergleichsbasierter Sortieralg. charakterisiert

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

NAME, VORNAME: Studiennummer: Matrikel:

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Übungsklausur Algorithmen I

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Grundlagen: Algorithmen und Datenstrukturen

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012

Klausur Algorithmen und Datenstrukturen II 01. Agust 2016

Komplexität von Algorithmen:

Übung Algorithmen und Datenstrukturen

Aufgabenblatt 2 Suchen und Sortieren. Aufgabe 1: Vergleiche und Sortieren in Java

1.3 Erinnerung: Mergesort

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

Datenstrukturen & Algorithmen

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

4. Sortieren 4.1 Vorbemerkungen

Übungsklausur Algorithmen I

Algorithmen & Komplexität

JAVA - Suchen - Sortieren

Datenstrukturen, Algorithmen und Programmierung 2

Sortieren II / HeapSort Heaps

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

Klausur Algorithmen und Datenstrukturen II 29. Juli 2013

Ordnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1)

Übungsblatt 7. Thema: Sortieren, Objektorientierung

Algorithmen und Datenstrukturen

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren

Klausur Algorithmentheorie

Sortieren und Suchen. Jens Wächtler Hallo Welt! -Seminar LS 2

Tutoraufgabe 1 (Sortieren): Lösung: Datenstrukturen und Algorithmen SS14 Lösung - Übung 4

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen SS09. Foliensatz 15. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Aufgabe (Schreibtischtest, lexikographische Ordnung)

Algorithmen und Datenstrukturen

Vorlesung Datenstrukturen

Datenstrukturen und Algorithmen 2. Klausur SS 2001

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung

Karlsruher Institut für Technologie Institut für Theoretische Informatik. Klausur Algorithmen I

Untere Schranke für allgemeine Sortierverfahren

Algorithmen und Datenstrukturen 1 Kapitel 5

14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

ÜBUNGSKLAUSUR Studienhalbjahr: 2. Semester. Datum: 20. Juli 2016 Bearbeitungszeit: 90 Minuten. Modul: T2INF Dozent: Stephan Schulz

Algorithmen und Datenstrukturen Tutorium I

Sortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2

Abschnitt 19: Sortierverfahren

Algorithms & Data Structures 2

3. Hausübung Algorithmen und Datenstrukturen

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

Heapsort, Quicksort, Mergesort. 8. Sortieren II

Sortierverfahren für Felder (Listen)

Ordnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1)

Transkript:

Algorithmen und Datenstrukturen II Große Übung #1 Arne Schmidt 19.04.2016

Organisatorisches Arne Schmidt Große Übung 2

Homepage Aktuelle Informationen, Hausaufgaben, Slides auf: https://www.ibr.cs.tu-bs.de/courses/ss17/aud2/ Arne Schmidt Große Übung 3

Anmeldung Anmeldung bis Freitag 23:59 Uhr. Einteilung der Gruppen: Vorraussichtlich im Laufe des Samstag. Arne Schmidt Große Übung 4

Semesterplan Vorlesung (Do.) Gr. Übung (Mi.) Semesterplan AuD II SS17 Kl. Übung HA Ausgabe (Mo./Mi./Fr.) (Mo.) HA Abgabe (Mo. bis 13:15 Uhr) HA Rückgabe (in kl UE) Woche 14 15 1 16 2 1 HA0*, HA1 17 3 1 HA0 18 4 2 HA2 HA1** 19 5 2 HA1 20 6 3 HA3 HA2 21 Christi Himmelfahrt 3 HA2 22 7 4 HA4 HA3 23 Exkursionswoche 24 8 5 4 HA3 25 9 HA5 HA4 26 10 6 5 HA4 27 11 HA5 28 12 7 6 HA5 *: Mündliche Aufgaben, Bearbeitung in ersten kleinen Übungen; keine Bewertung **: Da der 01.05.2017 ein Feiertag ist, findet die Abgabe des ersten Blattes am 02.05. statt. Arne Schmidt Große Übung 5

Hausaufgaben 6 Blätter 1 unbewertet 5 bewertet 45 Punkte pro Blatt, davon maximal 30 erreichbar Es gibt: zwei Theorieaufgaben, eine Programmieraufgabe (Java) Maximal 2 von 3 Aufgaben abgeben Studienleistung: mind. 75 Punkte Studienleistung ist keine Vorraussetzung, um an der Prüfung teilzunehmen Zusammen arbeiten, aber: einzeln aufschreiben und abgeben Nicht in Bleistift Nicht in Rot Arne Schmidt Große Übung 6

Klausur Findet statt am 31.07.2017, zwischen 8:00 und 11:00 Uhr. Nähere Informationen dazu erfolgen gegen Ende des Semesters über die Mailingliste (und über die Webseite). Arne Schmidt Große Übung 7

Mailingliste Anmeldung über Homepage. Informationen zur Vorlesung/Übung/Klausur Bietet Möglichkeit Fragen zu stellen. Hiwis können über die Mailingliste erreicht werden. Arne Schmidt Große Übung 8

Fragen! Stellt Eure Fragen: über die Mailingliste in: Vorlesung, Gr. Übung, Kl. Übungen Euren Tutoren Sprechstunde von Arne Schmidt nach Vereinbarung Sprechstunde von Prof. Sándor Fekete (Mi. 13:15-14:00 Uhr) Arne Schmidt Große Übung 9

Fragen? Arne Schmidt Große Übung 10

Previously on AuD I Arne Schmidt Große Übung 11

Problem Allgemeine Fragestellung. Meistens formuliert mit: Eingabe: Was ist gegeben? Ausgabe: Was ist gesucht? Lösung eines Problems: Angabe eines Algorithmus. Arne Schmidt Große Übung 12

Instanz Eine Problemstellung mit konkreter Eingabe. Lösung einer Instanz: Angabe einer konkreten Ausgabe. Arne Schmidt Große Übung 13

Beispiel - Klausurproblem Gegeben: Maximale Zeit T, Zu erreichende Punkte P, Aufgaben A i = (t i, p i ) Gesucht: Menge S von A i s mit: und t i T i S p i P i S Lösung:?? Das seht ihr in der Vorlesung! Arne Schmidt Große Übung 14

Beispiel - Klausurinstanz Gegeben: Maximale Zeit 120, zu erreichende Punkte 44, Aufgaben A i : i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 t i 20 32 40 8 16 4 32 40 8 32 28 20 16 20 40 24 p i 3 3 10 5 2 4 2 9 2 5 3 9 10 3 10 4 Gesucht: Menge S von A i s mit: t i 120 und i S p i 44 i S Lösung: S = {6, 4, 13, 12, 9, 3, 16} (siehe VL) Arne Schmidt Große Übung 15

Laufzeiten / Komplexität Meistens ist die absolute Laufzeit eines Algorithmus weniger interessant. Wichtig ist die asympotische Laufzeit. Beispielsweise kann man 25n 2 + 12n log n 8n nach oben und unten abschätzen mit 17n 2 25n 2 + 12n log n 8n 37n 2 Da Konstanten für asympotisches Wachstum uninteressant sind, sagt man Die Funktion liegt in Θ(n 2 ) : 25n 2 + 12n log n 8n Θ(n 2 ) Arne Schmidt Große Übung 16

Laufzeiten / Komplexität Manchmal finden sich nur Abschätzungen nach oben bzw. nach unten. Dann ist zum Beispiel und 25n 2 + 12n log n 8n O(n 2 ) 25n 2 + 12n log n 8n Ω(n 2 ) Diese beiden Notationen werden verwendet, um auszudrücken: Eine Funktion f (n) braucht maximal c g(n) lange (sprich f (n) O(g(n))). Eine Funktion f (n) braucht mindestens c g(n) lange (sprich f (n) Ω(g(n))). Arne Schmidt Große Übung 17

Sortieren Aufgabe: Sortiere ein Array von n Zahlen in aufsteigender Reihenfolge. Lösungen: 1. Bubblesort: Lasse Zahlen wie Blasen aufsteigen. Große Blasen verdrängen kleine Blasen. 2. Quicksort: Nimm ein Pivotelement p und teile die Zahlen in die Bereiche < p, = p und > p. Wiederhole Prozedur auf erstem und drittem Bereich. 3. Mergesort: Teile das Array in der Mitte und sortiere die linke und rechte Hälfte mit Mergesort. Sind beide Hälften sortiert, kombiniere beide Hälften. Arne Schmidt Große Übung 18

Sortieren - Laufzeit Algorithmus Best-Case Average-Case Worst-Case Bubblesort O(n) O(n 2 ) O(n 2 ) Quicksort O(n log n) O(n log n) O(n 2 ) Mergesort O(n log n) O(n log n) O(n log n) Alle Algorithmen nutzen Vergleiche. Man weiß: Theorem Jeder vergleichsbasierte Sortieralgorithmus benötigt Ω(n log n) Vergleiche. Arne Schmidt Große Übung 19

Hausaufgaben (Programmierteil) Arne Schmidt Große Übung 20

1234567 muss durch eure Matrikelnummer ersetzt werden! (Auch der Dateiname muss dann angepasst werden.) Arne Schmidt Große Übung 21

Dies ist der Teil, der von euch über das Semester ausgefüllt werden soll. Arne Schmidt Große Übung 22

Um das Ergebnis einer Methode zu sehen, entfernt die Kommentierung der entsprechenden Zeile. Das erste println gibt euch die Instanzdaten auf der Konsole aus. Hinweis: Der Wert einer Lösung ist immer auf die nächste kleinere ganze Zahl gerundet! Arne Schmidt Große Übung 23

Hausaufgaben (Das Partitionsproblem) Arne Schmidt Große Übung 24

Das Partitionsproblem - Partition Das Problem wird noch in der 3. Vorlesung behandelt. Um die Hausaufgaben zu bearbeiten, seht ihr es jetzt schon: Gegeben: n Objekte 1,..., n mit jeweils Größe z i. Gesucht: Teilmenge S {1,..., n} mit z i = i S i / S Anders ausgedrückt: Teile n Zahlen in zwei Mengen, deren Gewicht gleichgroß ist. Ein Beispiel: 7, 5, 9, 4, 6, 8, 3 lässt sich aufteilen in {7,6,8} und {5,9,4,3} Leider klappt das Aufteilen nicht immer so einfach! z i Arne Schmidt Große Übung 25

Fragen? Arne Schmidt Große Übung 26