Übungsklausur Algorithmen I
|
|
- Reinhardt Reuter
- vor 7 Jahren
- Abrufe
Transkript
1 Universität Karlsruhe, Institut für Theoretische Informatik Prof. Dr. P. Sanders svorschlag Übungsklausur Algorithmen I Hiermit bestätige ich, dass ich die Klausur selbständig bearbeitet habe: Aufgabe 1. Gegeben sei folgende Darstellung eines binären Heaps als Array mit den Indizes 1,...,5: Geben sie den Inhalt des Arrays an, nachdem deletemin ausgeführt worden ist: Gegeben sei folgende Darstellung eines binären Heaps als Array mit den Indizes 1,...,5: Geben sie den Inhalt des Arrays an, nachdem deletemin ausgeführt worden ist:
2 svorschlag Gegeben sei folgende Darstellung eines binären Heaps als Array mit den Indizes 1,...,5: Geben sie den Inhalt des Arrays an, nachdem deletemin ausgeführt worden ist: Aufgabe 2. Nennen Sie ein Beispiel für die vereinfachende Wirkung von Wächterelementen (= Sentinels). Sortieren durch Einsetzen. Suchen in (verketteten) Listen. Aufgabe 3. Nennen Sie zwei Operationen, die doppelt verkettete Listen in konstanter worst-case-zeit unterstützen, einfach verkettete Listen jedoch nicht. insert, remove, popback a) Nennen Sie eine Operation, die einfach verkettete Listen in konstanter worst-case-zeit unterstützen. b) Nennen Sie einen Vorteil von einfach verketteten Listen gegenüber doppelt verketteten Listen. a) first, last, removeafter, insertafter, pushfront, popfront, pushback b) Weniger Speicherverbrauch (da weniger Handles), oft schneller (weniger Handles müssen geupdated werden)
3 svorschlag Aufgabe 4. Nennen Sie einen Vorteil und einen Nachteil von Hashing mit verketteten Listen gegenüber offenem Hashing mit linearer Suche. Vorteile: insert in O(1), für dichte Hashtabellen besser, referentielle Integrität, Leistungsgarantien mit universellem Hashing Nachteile: nicht so platz-effizient, nicht so cache-effizient, nicht so einfach Nennen Sie einen Vorteil und einen Nachteil von offenem Hashing mit linearer Suche gegenüber Hashing mit verketteten Listen. Vorteile: platz-effizient, cache-effizient, einfach Nachteile: insert nicht in O(1), für dichte Hashtabellen schlechter, keine Referentielle Integrität, keine Leistungsgarantieen mit universellem Hashing Aufgabe 5. [3 Punkte] Der Ministerpräsident von Baden-Württemberg möchte die besten 2% der Abiturienten seines Landes zu einem Gartenfest einladen. Gegeben sei dazu eine Datei F von n Tripeln der Form (Name, LaufendeNr, Durchschnittsnote). a) Geben Sie einen Algorithmus an, der in erwartet O(n) Zeit die besten 2% aller Abiturienten liefert. Bemerkung. Sie können Algorithmen aus der Vorlesung als Unterprogramm verwenden. Für (erwartet) O(nlogn) Zeit bekommen Sie immerhin noch die Hälfte der Punkte. b) Argumentieren Sie, warum Ihr Algorithmus das gewünschte Laufzeitverhalten hat. a) Man betrachte auf F die Relation, definiert durch (N 1,L 1,D 1 ) (N 2,L 2,D 2 ) : D 1 D 2. Man wende nun den Algorithmus Quickselect aus der Vorlesung gemäß der gerade definierten Relation an, um so das 2n/100 -te Element bzgl. zu wählen. Heiße dieses p. Man verwende nun die von Quicksort bekannte Art zu partionieren, um F derart in zwei Teile zu teilen, dass der linke Teil alle Elemente e F mit e p enthält und der rechte Teil alle anderen. Der linke Teil enthält die gesuchten besten 2%. b) Quickselect: erwartet O(n) Zeit. Partitionieren: O(n) Zeit.
4 svorschlag Eine erfolgreiche Fastfood-Kette bewertet ihre Mitarbeiter mit einem internen Punktesystem. Nun möchte der Chef die am besten bewerteten 3% aller Mitarbeiter zu einem Gala-Abend einladen. Dazu hat er eine Datei F von n Tripeln der Form (MitarbeiterID, Name, Bewertung). a) Geben Sie einen Algorithmus an, der in erwartet O(n) Zeit die am besten bewerteten 3% aller Mitarbeiter berechnet. Bemerkung. Sie können Algorithmen aus der Vorlesung als Unterprogramm verwenden. Für (erwartet) O(nlogn) Zeit bekommen Sie immerhin noch die Hälfte der Punkte. b) Argumentieren Sie, warum Ihr Algorithmus das gewünschte Laufzeitverhalten hat. a) Man betrachte auf F die Relation, definiert durch (M 1,N 1,B 1 ) (M 2,N 2,B 2 ) : B 1 besser oder gleich B 2. Man wende nun den Algorithmus Quickselect aus der Vorlesung gemäß der gerade definierten Relation an, um so das 3n/100 -te Element bzgl. zu wählen. Heiße dieses p. Man verwende nun die von Quicksort bekannte Art zu partionieren, um F derart in zwei Teile zu teilen, dass der linke Teil alle Elemente e F mit e p enthält und der rechte Teil alle anderen. Der linke Teil enthält die gesuchten 3% mit der besten Bewertung. b) Quickselect: erwartet O(n) Zeit. Partitionieren: O(n) Zeit. Aufgabe 6. Zeigen oder widerlegen Sie, dass 2 2n = O(3 n ). Gilt nicht. Wenn doch, gäbe es c > 1,n 0 > 1 mit 2 2n c3 n für alle c n 0. Es ist aber 4 n = (2 2 ) n = 2 2n c3 n ( ) 4 n c n log 3 c, 4/3 was ein Widerspruch ist zur Unbeschränktheit von n nach oben.
5 svorschlag Zeigen oder widerlegen Sie, dass 2 3n = O(5 n ). Gilt nicht. Wenn doch, gäbe es c > 1,n 0 > 1 mit 2 3n c5 n für alle c n 0. Es ist aber 8 n = (2 3 ) n = 2 3n c5 n ( ) 8 n c n log 5 c, 8/5 was ein Widerspruch ist zur Unbeschränktheit von n nach oben. Zeigen oder widerlegen Sie, dass 3 2n = O(5 n ). Gilt nicht. Wenn doch, gäbe es c > 1,n 0 > 1 mit 3 2n c5 n für alle c n 0. Es ist aber 9 n = (3 2 ) n = 3 2n c5 n ( ) 9 n c n log 5 c, 9/5 was ein Widerspruch ist zur Unbeschränktheit von n nach oben. Aufgabe 7. Bestimmen Sie die en der folgenden Rekurrenzen im Θ-Kalkül mit dem Master- Theorem: T (1) = 1, T (n) = 5T (n/3) + 4n, n = 3 k, k N S(1) = 42, S(n) = n + 2S(n/2), n = 2 k, k N T (n) = Θ ( n log 3 5), S(n) = Θ(nlogn) Bestimmen Sie die en der folgenden Rekurrenzen im Θ-Kalkül mit dem Master- Theorem: T (1) = 1,T (n) = n/5 + 4T (n/5), n = 5 k, k N S(1) = 33, S(n) = 5S(n/4) + 89n, n = 4 k, k N T (n) = Θ(n), S(n) = Θ ( n log 4 5)
6 svorschlag Bestimmen Sie die en der folgenden Rekurrenzen im Θ-Kalkül mit dem Master- Theorem: T (1) = 2001, T (n) = 42n + 2T (n/2), n = 2 k, k N S(1) = 5, T (n) = 5 4 T (n/7) + n/7, n = 7k, k N T (n) = Θ(nlogn), S(n) = Θ(n) Variante 4 Bestimmen Sie die en der folgenden Rekurrenzen im Θ-Kalkül mit dem Master- Theorem: T (1) = 2, T (n) = 7n + 4T (n/2), n = 2 k, k N S(1) = 5, T (n) = 3T (n/3) n, n = 3 k, k N T (n) = Θ ( n 2), S(n) = Θ(nlogn) Aufgabe 8. Nennen Sie einen Vorteil von Radix-Sort gegenüber Mergesort und von Mergesort gegenüber Quicksort. Vorteil Radix-Sort gegenüber Mergesort: Zeit in O(n) statt Θ(nlogn) Vorteile Mergesort gegenüber Quicksort: stabil, O(n log n) bzw. n log n + O(n) Vergleiche im worst-case Nennen Sie einen Vorteil und Nachteil von Mergesort gegenüber Quicksort. Vorteile von Mergesort: O(nlogn) Vergleiche im schlimmsten Fall, bei Quicksort Θ(n 2 ) stabil nlogn + O(n) Elementvergleiche statt Θ(n 2 ) wie im schlimmsten Fall bei Quicksort Nachteile von Mergesort: in der Praxis oft langsamer nicht inplace
7 svorschlag Nennen Sie je einen Vorteil von Radix-Sort gegenüber Quicksort und von Quicksort gegenüber Mergesort. Vorteile von Radixsort gegenüber Quicksort: Zeit in O(n) statt erwartet Θ(n log n) bzw. worst-case Θ(n 2 ), Radix-Sort stabil im Gegensatz zu Quicksort Vorteile von Quicksort gegenüber Mergesort: In der Praxis oft schneller, inplace Aufgabe 9. Ein Student hat sich nachfolgenden RAM-Code ausgedacht (dabei ist x ein Platzhalter): R 1 := 1 R 2 := 0 R 4 := x schleifenanfang: R 2 := R 2 + R 1 R 1 := R R 3 := R 1 R 4 JZ schleifenanfang, R 3 Welchen Wert enthält das Register R 2 nach Ausführung des Programms für den Fall das x = 4? Für den Fall x = 4 enthält das Register R 2 den Wert R 2 = = 6. Im Fall x = n N gilt nach Ausführung des Programms R 2 = n 1 i=1 i
8 svorschlag Aufgabe 10. Ist dieser Graph ein DAG? Begründen Sie (z.b. durch Markierungen in der Zeichnung des Graphen)! Der Graph ist kein DAG, da er einen gerichteten Kreis enthält. Aufgabe 11. Gegeben Sei folgender Algorithmus zum Finden einer Zahl x in einem unsortierten Feld A von natürlichen Zahlen. 1: procedure findnumber(a : Array [1..n] of N, x N ) 2: for i = 1 to n do 3: if A[i] == x return i 4: invariant 5: return -1 Geben Sie in Zeile 4 eine gültige und sinnvolle Invariante an. Zum Beispiel: k {1...i} : A[k] x. Zusatz: Falls Zeile 5 aufgerufen wird, so gilt i = n. Also gilt i {1..n} : A[i] x und mit anderen Worten: A enthält kein Element mit dem Wert x. Aufgabe 12. Welche der folgenden Operationen eines unbeschränkten Feldes liegen im schlimmsten Fall in Θ(n) (ohne Amortisierung): pushback, Folge von n pushback, [ ] (Elementzugriff), (Größe)? pushback, Folge von n pushback Aufgabe 13.
9 svorschlag Nennen Sie zwei Vorteile von beschränkten Feldern gegenüber einfach verketteten Listen. keine Zeiger Cache-effizientes Iterieren effizienter beliebiger/wahlfreier Zugriff einfach Nennen Sie zwei Nachteile von beschränkten Feldern gegenüber verketteten Listen. kein effizientes Einfügen an beliebiger Position Speicherplatz-Verschnitt einzelne Operationen können lange dauern nicht so flexibel Nennen Sie zwei Vorteile von einfach verketteten Listen gegenüber beschränkten Feldern. flexibel keine Ausreißer bei der Laufzeit der Operationen kein Speicherplatz-Verschnitt effizientes Einfügen an beliebiger Position Variante 4 Nennen Sie zwei Nachteile von einfach verketteten Listen gegenüber beschränkten Feldern. Zeiger benötigen zusätzlichen Platz Iterieren nicht Cache-effizient kein effizienter beliebiger/wahlfreier Zugriff komplizierter
10 Aufgabe 14. svorschlag Gegeben Sei eine Hashtabelle mit 10 Einträgen und die Hashfunktion h(x) = x DIV 10. Fügen Sie die Elemente 4, 77, 5, 63, 98, 3, 22, 23, 99 in der gegebenen Reihenfolge in die Hashtabelle ein. Verwenden Sie Hashing mit lineare Suche (zyklisches Array). Geben Sie nur das entgültige Ergebnis an Gegeben Sei eine Hashtabelle mit 10 Einträgen und die Hashfunktion h(x) = x DIV 10. Fügen Sie die Elemente 3, 76, 4, 62, 97, 2, 21, 22, 98 in der gegebenen Reihenfolge in die Hashtabelle ein. Verwenden Sie Hashing mit lineare Suche (zyklisches Array). Geben Sie nur das entgültige Ergebnis an Gegeben Sei eine Hashtabelle mit 10 Einträgen und die Hashfunktion h(x) = x DIV 10. Fügen Sie die Elemente 2, 75, 3, 61, 96, 1, 21, 22, 97 in der gegebenen Reihenfolge in die Hashtabelle ein. Verwenden Sie Hashing mit lineare Suche (zyklisches Array). Geben Sie nur das entgültige Ergebnis an
11 svorschlag Aufgabe 15. Ein Array A[1..h] stelle einen impliziten binären Heap dar. Geben Sie sowohl den Index des Parents als auch des linken Kindes für das Element j an, gegeben dass beide existieren. parent(j) = linkes Kind(j) = parent(j) = j/2, linkes Kind(j) = 2 j Ein Array A[1..h] stelle einen impliziten binären Heap dar. Geben Sie sowohl den Index des linken als auch des rechten Kindes für das Element j an, gegeben dass beide existieren. linkes Kind(j) = rechtes Kind(j) = linkes Kind(j) = 2 j, rechtes Kind(j) = 2 j + 1 Ein Array A[1..h] stelle einen impliziten binären Heap dar. Geben Sie sowohl den Index des Parents als auch des rechten Kindes für das Element j an, gegeben dass beide existieren. parent(j) = rechtes Kind(j) = parent(j) = j/2, rechtes Kind(j) = 2 j + 1 Aufgabe 16. Erläutern Sie kurz die Hauptidee des rekursiven recmult-algorithmus der Vorlesung zur Multiplikation von zwei n-bit Ziffern a, b. Im Wesentlichen handelt es sich um einen Darstellungstrick: Es sei a = a 1 B k + a 0, b = b 1 B k + b 0. Dann a b = a 1 b 1 B 2k + (a 1 b 0 + b 1 a 0 )B k + a 0 b 0. Daraus lässt sich dann der Algorithmus ableiten.
12 svorschlag Aufgabe 17. Wie lautet die Datenstrukurinvariante für doppelt verkettete Listen aus der Vorlesung? prev next = next prev = this Wie lautet die Heap-Eigenschaft? Bäume (oder Wälder) mit v :parent(v) v
Abschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
MehrDatenstrukturen und Algorithmen
Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group
MehrSuchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die
MehrÜbersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter
MehrSortierverfahren für Felder (Listen)
Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es
Mehr3. Übung Algorithmen I
Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der
Mehr1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrAbgabe: (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,
MehrProgrammieren I. Kapitel 7. Sortieren und Suchen
Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren
Mehr2. Musterlösung. Problem 1: Least Common Ancestor
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Least Common Ancestor pt (a) Aus Zeilen und ist klar, dass LCA(wurzel[T ]) eine Folge von rekursiven
MehrSortierte Folgen 250
Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:
MehrKlausur Datenstrukturen und Algorithmen SoSe 2012
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Klausur Datenstrukturen und Algorithmen SoSe 2012 Vorname: Nachname: Studiengang (bitte genau einen
MehrÜbersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.
Übersicht Datenstrukturen und Vorlesung 1: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/ Diese Präsentation verwendet
MehrAlgorithmen und Datenstrukturen Wintersemester 2004/ November T(n) = T(n a) + T(a) + n
Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim
MehrÜ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:
Übungsblatt 1 Aufgabe 1.1 Beweisen oder widerlegen Sie, dass für die im Folgenden definierte Funktion f(n) die Beziehung f(n) = Θ(n 4 ) gilt. Beachten Sie, dass zu einem vollständigen Beweis gegebenenfalls
Mehr1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert
Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume
MehrAlgorithmen & Datenstrukturen 1. Klausur
Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse
MehrTechnische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 1 für die Übung
MehrS=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J
Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung
MehrProgrammiertechnik II
2007 Martin v. Löwis Priority Queues and Heapsort 2007 Martin v. Löwis 2 Priority Queue Abstrakter Datentyp Inhalt: Elemente mit Priorität Operationen: Einfügen: Angabe des Elements und seiner Priorität
MehrÜbung Algorithmen I
Übung Algorithmen I.6.5 Christoph Striecks Christoph.Striecks@kit.edu (Mit Folien von Julian Arz, Timo Bingmann und Sebastian Schlag.) Roadmap Hinweise zur Übungsklausur (Weitere) Traversierungen von Binärbäumen
MehrUntersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe 1 (Güte von Hashfunktionen): Untersuchen Sie, inwiefern sich die folgenden Funktionen
MehrSuchen und Sortieren (Die klassischen Algorithmen)
Suchen und Sortieren (Die klassischen Algorithmen) Lineare Suche und Binäre Suche (Vorbedingung und Komplexität) Sortieralgorithmen (allgemein) Direkte Sortierverfahren (einfach aber langsam) Schnelle
MehrName: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.
Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?
MehrName:... Vorname:... Matrikel-Nr.:... Unterschrift:...
Studiengang Bachelor of Computer Science Modulprüfung Praktische Informatik 1 Wintersemester 2010 / 2011 Name:... Vorname:... Matrikel-Nr.:... Unterschrift:... Hinweise: 1.) Schreiben Sie Ihren Namen und
Mehr16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
MehrHEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen
9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
MehrBäume, Suchbäume und Hash-Tabellen
Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche
MehrWas bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch
Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch verschiedene Datenstrukturen: lineare Datenstrukturen: Array,
MehrInformatik II Musterlösung
Ludwig-Maximilians-Universität München SS 2006 Institut für Informatik Übungsblatt 4 Prof. Dr. M. Wirsing, M. Hammer, A. Rauschmayer Informatik II Musterlösung Zu jeder Aufgabe ist eine Datei abzugeben,
MehrÜbersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.
Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Mathematische Grundlagen: Das Handwerkszeug Mariano Zelke Datenstrukturen 2/26 Formeln: n - i = n (n+1) 2 und - i=1 k i=0 a i = ak+1 1 a 1, falls a 1 Rechnen
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
Mehr3. Musterlösung. Problem 1: Boruvka MST
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer
MehrProgrammiertechnik II
Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Mathematische Grundlagen
MehrGrundlegende Sortieralgorithmen
Grundlegende Sortieralgorithmen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch Sortieren in Java Man kann Sortierverfahren in einem imperativem oder einem objektorientierten Stil programmieren.
MehrCodes und Informationsgehalt
Aufgaben 2 Codes und Informationsgehalt Auf wie viele Dezimalziffern genau können vorzeichenlose ganze Zahlen in einem binären Code der Länge 32 bit dargestellt werden? 2 Codes und Informationsgehalt Auf
MehrGrundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
MehrJAVA - Suchen - Sortieren
Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik
MehrVorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz
Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)
MehrIn vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.
Binäre Suchbäume Tries (Folie 182, Seite 58 im Skript) In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut. In Tries entspricht die ite Verzweigung dem iten Zeichen des Schlüssels.
MehrEffiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra
Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 5, Donnerstag, 20.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 5, Donnerstag, 20. November 2014 (Wie baut man eine Hash Map, Universelles Hashing)
Mehr14. Rot-Schwarz-Bäume
Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).
Mehr4 Greedy-Algorithmen (gierige Algorithmen)
Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine
MehrBeispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6
Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer
MehrOne of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed. Bin Hu
Bin Hu Algorithmen und Datenstrukturen 2 Arbeitsbereich fr Algorithmen und Datenstrukturen Institut fr Computergraphik und Algorithmen Technische Universität Wien One of the few resources increasing faster
Mehr! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind.
Unterschiede von DBMS und files Speichern von Daten! DBMS unterstützt viele Benutzer, die gleichzeitig auf dieselben Daten zugreifen concurrency control.! DBMS speichert mehr Daten als in den Hauptspeicher
MehrProgrammieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm
Studienanforderungen Studiengang Maschinenbau Programmieren Begleitende Übungen zu Veranstaltungen Umsetzen des Algorithmus in ein lauffähiges Programm Studiengang Bauingenieurwesen Programmieren Begleitende
MehrEntscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
MehrGraphen: Datenstrukturen und Algorithmen
Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.
MehrKlausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte
Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Musterlösung 1. Aufgabe (5 Punkte) Im folgenden Programmcode sind einige Fehler enthalten. Finden und markieren Sie mindestens
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2015/16 12. Vorlesung Hashing Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Übungen Begründen Sie grundsätzlich alle Behauptungen außer die Aufgabe
MehrALP I. Funktionale Programmierung
ALP I Funktionale Programmierung Sortieren und Suchen (Teil 1) WS 2012/2013 Suchen 8 False unsortiert 21 4 16 7 19 11 12 7 1 5 27 3 8 False sortiert 2 4 6 7 9 11 12 18 21 24 27 36 Suchen in unsortierten
MehrEffiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume
Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen
MehrEinführung in die Informatik I Kapitel II.3: Sortieren
1 Einführung in die Informatik I Kapitel II.3: Sortieren Prof. Dr.-Ing. Marcin Grzegorzek Juniorprofessur für Mustererkennung im Institut für Bildinformatik Department Elektrotechnik und Informatik Fakultät
MehrTechnische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung
MehrCustomization (Zuschneiden)
Customization (Zuschneiden) Anpassen der (Graph)Datenstruktur an die Anwendung. I Ziel: schnell, kompakt. I benutze Entwurfsprinzip: make the common case fast I Listen vermeiden Mögliches Problem: Software-Engineering-Alptraum
MehrAVL-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:
AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls
MehrVorlesung 5: DATENSTRUKTUREN UND ALGORITHMEN
Vorlesung 5: DATENSTRUKTUREN UND ALGORITHMEN 125 Motivation! Wahl der Datenstruktur wichtiger Schritt beim Entwurf und der Implementierung von Algorithmen! Dünn besetzte Graphen und Matrizen bilden keine
MehrEine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder
Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013. Vorlesung 9, Dienstag 18.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013 Vorlesung 9, Dienstag 18. Dezember 2012 (Performance Tuning, Profiling, Maschinencode) Prof. Dr.
MehrSuchen in Listen und Hashtabellen
Kapitel 12: Suchen in Listen und Hashtabellen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Einleitung Lineare Suche Binäre Suche (in sortierten Listen) Hashverfahren
MehrEinführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst.
Einführung Elementare Datenstrukturen (Folie 38, Seite 23 im Skript) Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst. Einführung Elementare Datenstrukturen
Mehr8 Graphrepräsentation
Sanders / van Stee: Algorithmentechnik November, 7 1 8 Graphrepräsentation 1736 fragt L. Euler die folgende touristische Frage: Straßen- oder Computernetzwerke Zugverbindungen (Raum und Zeit) Soziale Netzwerke
MehrLösungsvorschläge. zu den Aufgaben im Kapitel 4
Lösungsvorschläge zu den Aufgaben im Kapitel 4 Aufgabe 4.1: Der KNP-Algorithmus kann verbessert werden, wenn in der Funktion nexttabelle die Zuweisung next[tabindex] = ruecksprung; auf die etwas differenziertere
MehrAlgorithmen und Datenstrukturen Laufzeitabschätzung
Algorithmen und Datenstrukturen Laufzeitabschätzung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren, Suchen,
MehrKapitel 3. Speicherhierachie. Beispiel für Cache Effekte. Motivation Externspeicheralgorithmen. Motivation Für Beachtung von Cache Effekten
Kapitel 3 Algorithmen für große Datenmengen Motivation Externspeicheralgorithmen Es werden immer größere Datenmengen gesammelt (WWW, Medizin, Gentechnik ) Daten müssen auf großen externen Massenspeichern
MehrLösung zur Klausur zu Krypographie Sommersemester 2005
Lösung zur Klausur zu Krypographie Sommersemester 2005 1. Bestimmen Sie die zwei letzten Ziffern der Dezimaldarstellung von 12 34 Es gilt: 12 34 = 12 32+2 = 12 32 12 2 = 12 (25) 12 2 = ((((12 2 ) 2 ) 2
MehrKapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
MehrDateiorganisation und Zugriffsstrukturen
Dateiorganisation und Zugriffsstrukturen Prof. Dr. T. Kudraß 1 Mögliche Dateiorganisationen Viele Alternativen existieren, jede geeignet für bestimmte Situation (oder auch nicht) Heap-Dateien: Geeignet
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 202/3 24. Vorlesung Amortisierte Analyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Hash-Tabellen Frage: Ziel: Problem: Lösung: Wie groß macht man
MehrProgrammiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
MehrKapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung
Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler
MehrAlgorithmentheorie Randomisierung. Robert Elsässer
Algorithmentheorie 03 - Randomisierung Robert Elsässer Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung
MehrKostenmaße. F3 03/04 p.188/395
Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);
MehrKostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)
Kostenmodell Daniel Graf, Tobias Pröger 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch
MehrÜberblick. Lineares Suchen
Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität
MehrWiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen
Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter
MehrKap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis
Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest
MehrKomplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen
lausthal Informatik II Komplexität von Algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer
MehrEinführung in die Informatik 1
Einführung in die Informatik 1 Datenorganisation und Datenstrukturen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00
MehrTeil II: Prioritätslisten (Priority Queues)
Teil II: Prioritätslisten (Priority Queues)! Definition und Anwendungen! Binäre Heaps! Index-Heaps mit change- und remove-operation! Binomiale Heaps mit merge-operation Prof. Dr. O. Bittel, HTWG Konstanz
MehrLaufzeit und Komplexität
Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen
MehrFragen für die Klausuren
Fragen für die Klausuren Vom Quellcode zum ausführbaren Programm Was ist ein Quellcode? Ist der Quellcode von einem Programm auf unterschiedlichen Rechner gleich? Nennen Sie drei Programmiersprachen. Was
MehrSortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block
Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in
MehrDatenstruktur, die viele Operationen dynamischer Mengen unterstützt
Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)
MehrStefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie
Stefan Schmid TU Berlin & T-Labs, Berlin, Germany Reduktionen in der Berechenbarkeitstheorie Problem: Wie komme ich von hier zum Hamburger Hbf? 2 Beispiel P1 Wie komme ich von hier zum Hamburger Hbf? kann
MehrKapitel 2: Analyse der Laufzeit von Algorithmen Gliederung
Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs
MehrAlgorithmen II Vorlesung am 15.11.2012
Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
Mehr3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1
3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)
MehrProjekt Systementwicklung
Projekt Systementwicklung Effiziente Codierung: Laufzeitoptimierung Prof. Dr. Nikolaus Wulff Effiziente Codierung Der Wunsch effizienten Code zu schreiben entstammt mehreren Quellen: Zielplattformen mit
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
MehrVorname:... Matrikel-Nr.:... Unterschrift:...
Fachhochschule Mannheim Hochschule für Technik und Gestaltung Fachbereich Informatik Studiengang Bachelor of Computer Science Algorithmen und Datenstrukturen Wintersemester 2003 / 2004 Name:... Vorname:...
Mehr