Algorithmen und Datenstrukturen

Ähnliche Dokumente
Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Datenstrukturen & Algorithmen

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Laufzeit und Komplexität

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

13. Binäre Suchbäume

Algorithmen & Datenstrukturen 1. Klausur

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Algorithmen und Datenstrukturen

Datenstrukturen und Algorithmen

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

Kapiteltests zum Leitprogramm Binäre Suchbäume

8 Diskrete Optimierung

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Algorithmen und Datenstrukturen Suchbaum

6-1 A. Schwill Grundlagen der Programmierung II SS 2005

Grundlagen der Programmierung 2. Bäume

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

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

Fakultät Wirtschaftswissenschaft

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Sortierte Folgen 250

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

Programmiertechnik II

Programmiertechnik II

16. All Pairs Shortest Path (ASPS)

Vorlesung : Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Suchen und Sortieren Sortieren. Heaps

3. Übung Algorithmen I

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

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

Suchen in Listen und Hashtabellen

Abschnitt: Algorithmendesign und Laufzeitanalyse

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

4 Greedy-Algorithmen (gierige Algorithmen)

Einführung in die Informatik 1

1 topologisches Sortieren

1. Grundlagen Sortieren Vertauschen Selektion Einfügen Quicksort Suchen...

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Algorithmen und Datenstrukturen Balancierte Suchbäume

Einführung in die Informatik

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

Algorithmen und Datenstrukturen

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

Sortierverfahren für Felder (Listen)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Beispielblatt VU Algorithmen und Datenstrukturen 1 VU 6.0

EndTermTest PROGALGO WS1516 A

Kapitel 9 Suchalgorithmen

Anmerkungen zur Übergangsprüfung

Nachtrag zu binären Suchbäumen

Vorkurs Informatik WiSe 15/16

Tutorium Algorithmen & Datenstrukturen

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

Kap. 4.2: Binäre Suchbäume

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Das Briefträgerproblem

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Kurs 1613 Einführung in die imperative Programmierung

Informatik II. PVK Part1 Severin Wischmann n.ethz.ch/~wiseveri

Graphen: Datenstrukturen und Algorithmen

VBA-Programmierung: Zusammenfassung

368 4 Algorithmen und Datenstrukturen

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Seminarausarbeitung Entwurf und Analyse von Datenstrukturen. Splay Trees. Mirco Lukas und Alexander Werthmann. Datum:

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik

Nachholklausur Informatik II

Beispiel zu Datenstrukturen

Kurs 1575, Musterlösung zur Winter Klausur 2003/04

Algorithmen II Vorlesung am

Praktikum Diskrete Optimierung (Teil 11)

Komplexe Softwaresysteme 2 - SS Dominik Korner

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Kapitel 5: Dynamisches Programmieren Gliederung

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Übung 9 - Lösungsvorschlag

Seminar Komplexe Objekte in Datenbanken

Programmierung und Modellierung

ABITURPRÜFUNG 2009 LEISTUNGSFACH INFORMATIK

Algorithmen und Datenstrukturen

10. Kapitel (Teil1) BÄUME GRUNDLAGEN. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm

2. Lernen von Entscheidungsbäumen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

2 Lösungen "Peptide de novo Sequencing"

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Transkript:

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 sind am Rand angegeben. Um die Prüfung erfolgreich abzuschließen sind 40 von 80 Punkten ausreichend. Aufgabe 1 2 3 4 5 6 7 8 Erreichte Punkte Summe

1 Auswertung von Ausdrücken in C Bestimmen Sie für die folgenden Codefragmente, ob das Ergebnis der Ausgabe compilerabhängig ist. Geben Sie die möglichen Ausgaben an. (a) int z = 4; p r intf( % i + 1 = %i \n, z, ++z ) ; Compilerabhängig: ja nein Mögliche Ausgaben: (b) int c = 0; do { int c = 0; ++c ; p r intf ( c = %d, c ) ; } while ( c++ < 1 ) ; Compilerabhängig: ja nein Mögliche Ausgaben:

2 Datentypen in C Gegeben sind die folgenden Beschreibungen von Datentypen. Definieren Sie jeweils eine Datenstruktur in C, mit der dieser Datentyp repräsentiert werden kann. (a) Geben Sie eine Datenstruktur für eine verkettete Liste an, die zu speichernden Daten sind Ganzzahlen. (b) Finden Sie eine Datenstruktur für einen AVL-Baum. Der Schlüssel soll von einer Ganzzahl repräsentiert werden, die zu speichernden Daten sind Zeichenketten. (c) Definieren Sie eine Datenstruktur für eine Hashtabelle, die 10 Ganzzahlen mittels offener Adressierung speichern kann.

3 O Notation Bestimmen Sie für die folgenden Aussagen, ob sie wahr oder falsch sind! Kreuzen Sie T für wahr, F für falsch! Für jede richtige Antwort erhalten Sie einen Punkt, für jede falsche Antwort wird ein Punkt abgezogen. Die Aufgabe wird jedoch nicht insgesamt negativ bewertet. (a) f(n) Ω(g(n)) g(n) O(f(n)) T F (b) f(n) Θ(g(n)) f(n) O(g(n)) und f(n) Ω(g(n)) T F (c) f(n) Θ(g(n)) es gibt c 1,c 2 > 0 und N sodass für alle n > N gilt: c 1 g(n) f(n) c 2 g(n) (d) (log(n)) 10 Ω(n) T F (e) n i=0 a ix i, a n 0 is in Θ(x n ) T F (f) n log(n) Ω(n 2 ) T F (g) (log(n)) log(n) O( n log(n) ) T F (h) n! Θ(n n ) T F T F

[15] 4 Entwurf eines Suchalgorithmus Gegeben sei ein Feld x[1,...,n] von verschiedenen, aufsteigend sortierten int-werten und ein int-wert z. Geben Sie Pseudocode für einen nicht-rekursiven Algorithmus an, der einen Index i bestimmt sodass z = x[i], falls ein derartiger Index existiert. Die Laufzeit des Algorithmus soll in O(log n) liegen. Algorithmus 1 Suche im sortierten Feld Eingabe: Feld von ganzen Zahlen x[1... n] und eine Zahl z Ausgabe: Index i, sodass z = x[i] falls ein derartiger Index existiert; andernfalls i = 1 begin end

[16] 5 Binäre Suchbäume Erzeugen Sie einen AVL-Baum, in den Sie die folgenden Werte in der gegebenen Reihenfolge einfügen: [56,84,45,92,43, 57,37,21, 42, 12,27, 24, 16,11,28]. Geben Sie bei jeder Rotation den kritischen Knoten an.

6 Hashing mit offener Adressierung Gegeben sind die folgenden Werte: [4,24,28,60,71, 21,68,73, 16]. [9] Fügen Sie die oben angegebenen Werte in eine anfangs leere Hashtabelle der Größe 13 in der gegebenen Reihenfolge ein. Verwenden Sie dafür doppeltes Hashing mit der Hashfunktion h(k,j) = ((h 1 (k) + j h 2 (k)) mod 13), wobei h 1 (k) = k mod 13 und h 2 (k) = k mod 12. Fügen Sie in jeder Zeile der mittleren Tabelle den angegebenen Schlüssel an der korrekten Position ein und tragen Sie die Anzahl der dabei auftretenden Kollisionen sowie deren Positionen in der rechten Tabelle ein. K 4 24 28 60 71 21 68 73 16 0 1 2 3 4 5 6 7 8 9 10 11 12 Koll. Pos.

7 Analyse von Algorithmen [5] [3] (a) Betrachten Sie folgendes Code-Fragment und stellen Sie die exakte Rekursionsgleichung für die Anzahl T(n) der ausgeführten Multiplikationen in Abhängigkeit vom Eingabeparameter n auf. Nehmen Sie dazu an, dass n eine Zweierpotenz ist, d.h., n = 2 k für k N. (b) Geben Sie ausgehend von dieser Rekursionsgleichung eine asymptotische Schranke für die Anzahl der Multiplikationen an. Algorithmus 2 P ower Input: Zahlen x und n N Output: x n begin if n = 0 then return 1; if n = 1 then return x; temp := Power(x,n/2); if n mod 2 = 0 then return temp temp; else return temp temp x; end

8 Graphen Eine starke Zusammenhangskomponente G eines gerichteten Graphen G ist ein größter Teilgraph von G, so dass G stark zusammenhängend ist. Bestimmen Sie alle starken Zusammenhangskomponenten des gegebenen Graphen. A B C D E F G H J K