Algorithmen I - Tutorium 28 Nr. 6

Ähnliche Dokumente
Algorithmen I - Tutorium 28 Nr. 3

Übungsklausur Algorithmen I

Algorithmen I - Tutorium 28 Nr. 9

Algorithmen I - Tutorium 28 Nr. 2

Übungsklausur Algorithmen I

Denition: Rang eines Elements e einer Folge s = Position von e in sort(s) (angefangen bei 1). Frage: warum ist r nicht notwendig eindeutig?

Algorithmen I - Tutorium 28 Nr. 11

Erinnerung VL vom

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

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web:

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

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

Übungsklausur Algorithmen I

Informatik II, SS 2014

Algorithmen I - Tutorium 28 Nr. 7

3. Übung Algorithmen I

7. Übung zu Algorithmen I 1. Juni 2016

Algorithmen I - Tutorium 28 Nr. 1

Vorlesung Datenstrukturen

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

Grundlagen: Algorithmen und Datenstrukturen

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web:

1. Übung Algorithmen I

Informatik II, SS 2018

3. Übungsblatt zu Algorithmen I im SoSe 2017

Karlsruher Institut für Technologie. Klausur Algorithmen I

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web:

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen

Proseminar Effiziente Algorithmen

Algorithmen und Datenstrukturen

sort hash uncompress merge & mark hash collisions

Informatik II, SS 2016

Übung zu Algorithmen I 31. Mai 2017

Sortieren & Co. KIT Institut für Theoretische Informatik

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

Algorithmen und Datenstrukturen

Algorithmen I. Sascha Witt Institut für Theoretische Informatik Web:

Übung Algorithmen und Datenstrukturen

4. Übung zu Algorithmen I 17. Mai 2017

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Erinnerung VL

Algorithmen I - Tutorium 28 Nr. 12

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web:

Erinnerung VL vom

Grundlagen: Algorithmen und Datenstrukturen

Technische Universität München SoSe 2018 Fakultät für Informatik, I Mai 2018 Dr. Stefanie Demirci

Informatik II, SS 2018

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen

Grundlagen der Algorithmen und Datenstrukturen Kapitel 4

Übung Algorithmen und Datenstrukturen

Vorlesung Datenstrukturen

Sanders / van Stee: Algorithmentechnik November 23, Sortieren & Co

Verkettete Listen. KIT Institut für Theoretische Informatik 1

Übung Algorithmen und Datenstrukturen

Übungen zu Algorithmentechnik WS 09/10

Formaler. Gegeben: Elementfolge s = e 1,...,e n. s ist Permutation von s e 1 e n für eine lineare Ordnung ` '

9. Übung Algorithmen I

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

2. Übung Algorithmen I

Asymptotische Laufzeitanalyse: Beispiel

Proseminar Effiziente Algorithmen

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

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

s(x, i) = i h 2 (x), i N 0

10. Übung Algorithmen I

Matrikelnummer: Klausur Algorithmen I, Blatt 1 von 16

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

Algorithmen und Datenstrukturen (für ET/IT)

6/23/06. Universelles Hashing. Nutzen des Universellen Hashing. Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen

Algorithmen II Vorlesung am

4. Übung Algorithmen I

Übung Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen

Algorithmen II Vorlesung am

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

Bucketsort. Korrektheit. Beispiel. Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt.

Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt

Informatik II Prüfungsvorbereitungskurs

Algorithmen I. Prof. Peter Sanders Institut für Theoretische Informatik Web:

Erinnerung VL

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Algorithmen & Komplexität

Suchen und Sortieren Sortieren. Heaps

Übung Algorithmen und Datenstrukturen

Algorithmische Methoden für schwere Optimierungsprobleme

Algorithmen 1 Tutorium

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

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Algorithmische Methoden zur Netzwerkanalyse

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Kap. 3: Sortieren (3)

Klausur Algorithmen und Datenstrukturen

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

Grundlagen der Informatik

Algorithmen und Datenstrukturen

Transkript:

Algorithmen I - Tutorium 28 Nr. 6 08.06.2017: Spaß mit Sortieren, Aufgaben und Wiederholung Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN MÜLLER-QUADE KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Agenda 1 Selection 2 Bucket- und Radixsort 3 Wiederholung 4 Ende Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 2/24

Selection: wie? Kann ich einen bekannten Algorithmus so modifizieren, dass er das k-kleinste Element findet? Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 3/24

Quickselect Function select (s : Sequence of Element, k : N) : Element if s < k then error; wähle zufälliges p s a := e s : e < p if a k then return select(a, k) b := e s : e = p if a + b k then return p c := e s : e > p return select(c, k a b ) Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 4/24

Quickselect (2) Und weiter? Worst Case? O(n 2 ) Average Case? O(n) Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 5/24

Quicksort iterativ Wie funktionierte noch QuickSort? Wie kann ich diese Funktionsweise iterativ umsetzen? Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 6/24

Reprise: Quicksort procedure sort(a : Array [0..n 1], l : N 0, r : N 0 ) if l = r then return p := pickpivotposition(a, l, r) : N 0 split := partition(a, l, r, p) : N 0 sort(a, l, split 1); sort(a, split + 1, r); Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 7/24

Werde schneller. Kann ich unter bestimmten Bedingungen schneller sortieren? Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 8/24

Bucket- oder KSort Procedure KSort (s : Sequence of Element) b = [,..., ] : Array of [0..K-1] of Sequence of Element foreach e s do b[key(e)].pushback(e) s := concat b[0],..., b[k 1] Laufzeit O(n + K ) Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 9/24

LSDRadixSort Procedure LSDRadixSort (s : Sequence of Element) for i := 0 to d 1 do definiere key(x) als x K i mod K KSort(s) Was passiert hier? Laufzeit O(d(n + K )) Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 10/24

Algo 1 so far? Was haben wir bis jetzt schon kennengelernt? Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 11/24

O-Kalkül Welche Annahmen treffen wir? Gibt es "Rechenregeln"? Gibt es Werkezeuge? Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 12/24

O-Kalkül Zeige oder widerlege: 2 2n = o(3 n ). Gilt nicht: 2 2n = (2 2 ) n = 4 n 4 n c 3 n ( 4 3 )n c n log 4 c 3 Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 13/24

Invarianten Function dosmth findnumber(a : Array [1..n] of N, x : N { 1}) for i := 0 to n do if A [ i ] == x then return i invariant??? k 1..i : A[k] x return -1 Was macht obiger Algorithmus? Was ist eine sinnvolle Schleifeninvariante? Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 14/24

Folgen Welche Datenstrukturen eignen sich für folgende Operationen? GET(D,i) und LENGTH FIRST und LAST INSERT und REMOVE PUSH und POP CONCAT und SPLICE FINDNEXT Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 15/24

Folgen (2) 1 Nenne zwei Operationen, die doppelt verkette Listen in konstanter worst-case-zeit unterstützen, einfach verkettete Listen jedoch nicht. 2 Nenne einen Vorteil von einfach verketteten Listen gegenüber doppelt verketteten Listen. 1 insert, remove, popback 2 weniger Speicherverbrauch (da weniger Handles) Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 16/24

Folgen (3) Wie lautet die Datenstrukturinvariante für doppelt verkettete Listen aus der Vorlesung? pref next = next prev = this Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 17/24

Hashing Welche Voraussetzungen sind wichtig? Was hashe ich überhaupt? Wie löse ich Kollisionen auf? Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 18/24

Hashing Nenne 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 Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 19/24

Sortieren Welche Verfahren haben wir kennengelernt? Welche Laufzeiten haben diese im Worst, Average und Best Case? Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 20/24

Sortieren: ich bin stabil "Definition" Elemente, die bezüglich des Sortierschlüssels gleich sind, behalten ihre Reihenfolge relativ zueinander bei. Wer ist stabil? Wer nicht? Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 21/24

Sortieren: ich bin sparsam Definition: inplace Zusätzlicher Speicherverbrauch O(1). Der benötigte zusätzliche Speicher ist unabhängig von der Eingabe. Inplace: das kann wer? Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 22/24

Sortieren: Verbesserungen Warum wird QuickSort in der Realität eingesetzt? Was wurde getan, um ihn zu verbessern? Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 23/24

Was haben wir heute gemacht? Sortieren mit diskretem Schlüsselraum Wiederholung Aufgaben Viel Erfolg und eine super Woche! Marc Leinweber Algorithmen I - Tutorium 28 Nr. 6 08.06.2017 24/24