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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1

2 Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Worst-case Zeit für Search: Θ(n). In der Praxis jedoch sehr gut. Unter gewissen Annahmen, erwartete Suchzeit O(1). Hashing Verallgemeinerung von direkter Adressierung durch Arrays. 2

3 Direkte Adressierung mit Arrays Schlüssel für Objekte der dynamischen Menge aus U:={0,,m-1}. Menge U wird Universum genannt. Nehmen an, dass alle Objekte unterschiedliche Schlüssel haben. Legen Array T[0,,m-1] an. Position k in T reserviert für Objekt mit Schlüssel k. T[k] verweist auf Objekt mit Schlüssel k. Falls kein Objekt mit Schlüssel k in Struktur, so gilt T[k]=NIL. 3

4 Operationen bei direkter Adressierung (1) Direct - Address - Search 1. returnt Direct - 1. T Direct - 1. T [ key[ x ] [ k] Address - Insert x Address - Delete [ key[ x ] NIL ( T,k ) ( T,x) ( T,x) 4

5 Operationen bei direkter Adressierung (2) Laufzeit jeweils O(1). Direkte Adressierung nicht möglich, wenn Universum U sehr groß ist. Speicherineffizient (Θ( U )), wenn Menge der aktuell zu speichernden Schlüssel deutlich kleiner als U ist. 5

6 Direkte Adressierung - Illustration Schlüssel / Universum U 0 6 Benutzte Schlüssel K 2 7 / / / / / 8 8 Satellitendaten 6

7 Hashing Idee (1) Nehmen an, dass die Menge K der zu speichernden Schlüssel immer kleiner als das Universum U ist. Hashing hat dann Speicherbedarf Θ ( K ) Insert wie bei direkter Adressierung ( ) Zeit für Search und Delete ebenfalls O ( 1) Durchschnitt bei geeigneten Annahmen. Legen Array [ 0,,m 1]. Zeit für O 1., aber nur im T K an, wobei m < U. Nennen T Hashtabelle. Benutzen Hashfunktion h:u { 0, K,m-1}. Verweis auf Objekt mit Schlüssel k in [ h( k) ] T. 7

8 Hashing - Illustration Universum U k 1 k 5 k 4 Benutzte 2 k Schlüssel K 3 0 / / h h ( k 1 ) ( ) k 4 ( k ) h( ) h = k h ( ) / / / m 1 / k 3 2 k 5 8

9 Hashing Idee (2) Da m < U, gibt es Objekte, deren Schlüssel auf denselben Wert gehasht werden, d.h., es gibt Schlüssel k 1,k2 mit k1 k2 und h( k1) = h( k2 ). Dieses wird Kollision genannt. Verwaltung von Kollision erfolgt durch Verkettung. Speichern Objekte, deren Schlüssel auf den Hashwert h abgebildet werden, in einer doppelt verketteten Liste L h. Dann verweist T [ h] auf den Beginn der Liste, head. speichert also [ ] L h Insert, Delete, Search jetzt mit Listenoperationen. 9

10 Hashing Beispiel 10

11 Operationen bei Kollisionsverwaltung Chained - Hash - Search 1. Suche nach Element ( T,k ) mit Schlüssel k in Liste T [ h( k )]. Chained 1. Füge - x Hash - Insert am Kopf der ( T,x ) Liste T [ h( key [ x] )] ein. Chained - Hash - Delete 1. Entferne x aus Liste T ( T,x ) h( key [ x] ) [ ]. Laufzeit für Insert O(1). Laufzeit für Delete, Search proportional zur Länge von T[h(k)]. 11

12 Hashing mit Listen - Illustration Universum U / / k 1 k 1 k 4 / k / 5 Benutzte k2 Schlüssel K k / 3 / k 4 k k 2 5 k 3 12

13 Analyse von Hashing mit Listen (1) m Größe der Hashtabelle T, n Anzahl der gespeicherten Objekte. Dann heisst α:=n/m der Lastfaktor von T. α ist die durchschnittliche Anzahl von Elementen in einer verketteten Liste. Werden alle Objekte auf denselben Wert gehasht, so benötigt Suche bei n Elementen Zeit Θ(n). Dasselbe Verhalten wie verkettete Listen. Im Durchschnitt aber ist Suche deutlich besser, falls eine gute Hashfunktion h benutzt wird. Gute Hashfunktion streut Werte wie zufällige Funktion. 13

14 Einfaches uniformes Hashing Definition 13.1: Wenn wir annehmen, dass bei jedem neuen Objekt mit Schlüssel k, die Hashfunktion h den Schlüssel k gleichverteilt und unabhängig von anderen bereits festgelegten Hashwerten auf die möglichen Hashwerte abbildet, so sprechen wir von einfachem uniformen Hashing. 14

15 Analyse von einfachem uniformen Hashing (1) Für j = 0, 1, K,m 1sei n j Größe der Liste T [ j]. Dann gilt: n = n 0 + n 1 + L + n m 1. Erwartungswert E [ n ] j von n j ist α = n / m. Nehmen zusätzlich an, dass die Hashfunktion h in Zeit O(1) ausgewertet werden kann. 15

16 Analyse von einfachem uniformen Hashing (1) 16

17 Analyse von einfachem uniformen Hashing (2) Satz 13.2: Bei einfachem uniformen Hashing benötigt eine nicht erfolgreiche Suche im Erwartungswert Zeit Θ(1+α). Satz 13.3: Bei einfachem uniformen Hashing benötigt eine erfolgreiche Suche im Erwartungswert und bei zufälligem Suchobjekt Zeit Θ(1+α). In beiden Fällen: Ist n=o(m), so ist erwartete Laufzeit O(1). 17

18 Analyse von einfachem uniformen Hashing (2) Satz 13.2: Bei einfachem uniformen Hashing benötigt eine nicht erfolgreiche Suche im Erwartungswert Zeit Θ(1+α). 18

19 Analyse von einfachem uniformen Hashing (2) Satz 13.3: Bei einfachem uniformen Hashing benötigt eine erfolgreiche Suche im Erwartungswert und bei zufälligem Suchobjekt Zeit Θ(1+α). 19

20 Analyse von einfachem uniformen Hashing (2) 20

21 Analyse von einfachem uniformen Hashing (2) 21

22 Analyse von einfachem uniformen Hashing (2) 22

23 Einfaches uniformes Hashing - Realisierung Interpretation: Ist die Größe der Hashtabelle proportional zur Anzahl gespeicherter Elemente, dann ist die durchschnittliche Laufzeit O(1). Fragen: Gibt es Hash Funktionen, die die Annahme einfaches uniformes Hashing erfüllen? 23

24 Einfaches uniformes Hashing - Realisierung Interpretation: Ist die Größe der Hashtabelle proportional zur Anzahl gespeicherter Elemente, dann ist die durchschnittliche Laufzeit O(1). Fragen: Ja, z.b. eine zufällige Funktion von U nach {0,,m-1} Gibt es Hash Funktionen, die die Annahme einfaches uniformes Hashing erfüllen? 24

25 Einfaches uniformes Hashing - Realisierung Interpretation: Ist die Größe der Hashtabelle proportional zur Anzahl gespeicherter Elemente, dann ist die durchschnittliche Laufzeit O(1). Fragen: Gibt es Hash Funktionen, die die Annahme einfaches uniformes Hashing erfüllen? Kann man diese effizient konstruieren und abspeichern? 25

26 Einfaches uniformes Hashing - Realisierung Interpretation: Ist die Größe der Hashtabelle proportional zur Anzahl gespeicherter Elemente, dann ist die durchschnittliche Laufzeit O(1). Fragen: Nein. Es gibt m Funktionen und somit benötigen wir mindestens U log m Bits, um eine solche (zufällige) Funktion Gibt es Hash Funktionen, die die Annahme einfaches uniformes Hashing erfüllen? eindeutig zu kodieren. Kann man diese effizient konstruieren und abspeichern? 26

27 Einfaches uniformes Hashing - Realisierung Interpretation: Ist die Größe der Hashtabelle proportional zur Anzahl gespeicherter Elemente, dann ist die durchschnittliche Laufzeit O(1). Fragen: Gibt es Hash Funktionen, die die Annahme einfaches uniformes Hashing erfüllen? Kann man diese effizient konstruieren und abspeichern? Wie konstruiert man gute Hash Funktionen? 27

28 Einfaches uniformes Hashing - Realisierung Interpretation: Ist die Größe der Hashtabelle proportional zur Anzahl gespeicherter Elemente, dann ist die durchschnittliche Laufzeit O(1). Fragen: Man nimmt sich eine kleinere Klasse von Funktionen mit der Eigenschaft, dass eine zufällige Funktion aus dieser Klasse sich Gibt es Hash Funktionen, die die Annahme einfaches uniformes Hashing erfüllen? ähnlich verhält wie eine zufällige Funktion von U nach {0,..,m-1}. Kann man diese effizient konstruieren und abspeichern? Wie konstruiert man gute Hash Funktionen? 28

29 Einfaches uniformes Hashing - Realisierung Einfaches uniformes Hashing kann realisiert werden, indem 1. Jedem einzufügenden Objekt beim Einfügen ein Schlüssel zufällig gleichverteilt zugewiesen wird. 2. Für die Hashfunktion h und für jeden Hashwert w 0, 1, K, m 1 gilt: { } Die Anzahl der Schlüssel k, die auf w gehasht werden, ist genau U /m. Hashfunktion mit 2.Eigenschaft ist z.b. h(k)=k mod m, falls U Vielfaches von m ist. 29

30 Einfaches uniformes Hashing - Beispiel 30

31 Einfaches uniformes Hashing Realisierung 1.Eigenschaft ist sehr unrealistisch. Stattdessen Hashfunktionen, die Schlüssel regelmäßig streuen und Regelmäßigkeiten in den Daten umgehen. Beispiel: Schlüssel sind Eigennamen. Alphabetisch nahe Eigennamen sollten weit auseinander liegende Hashwerte erhalten. 31

32 Beispiele für Hashfunktionen 1. h(k)=k mod m (Divisionsmethode) 2. h(k)= m(ka mod 1), mit ka mod 1 = ka- ka (Multiplikationsmethode) Hashing mit Divisionsmethode schnell, pro Hashwert eine Division. m sollte keine Zweierpotenz sein. Andernfalls besteht Hashwert nur aus unteren Bits des Schlüssels. Gute Wahl ist Primzahl m, die nicht sehr nah an Zweierpotenzen liegt. 32

33 Multiplikationsmethode (1) Methode: h ( k ) m( k A mod m) =. Parameterwahl: p 1. Wahl von m irrrelevant, häufig m = Wahl von A wichtig, häufig gewählt als gute Approximation zum goldenen Schnitt ( 5 1) / 2. 33

34 Multiplikationsmethode (2) Berechnung h(k): p w (bei m = 2, A = s / 2, p w, k 2 w für alle Schlüssel k ) 1. Berechne r 2 w = k A. w w 2. Schreibe r als r12 + r0, 0 r Binärdarstellung von ( k ) oberen p Bits von r 0. h gegeben durch die 34

35 Multiplikationsmethode - Illustration w Bits k s = A 2 w r 1 r 0 h(k ) extrahiere p Bits 35

36 Offene Adressierung (1) Hashing mit Kollisionsvermeidung weist Objekt mit gegebenen Schlüssel feste Position in Hashtabelle zu. Bei Hashing durch offene Adressierung wird Objekt mit Schlüssel keine feste Position zugewiesen. Position abhängig von Schlüssel und bereits belegten Positionen in Hashtabelle. Für neues Objekt wird erste freie Position gesucht. Dazu wird Hashtabelle nach freier Position durchsucht. Reihenfolge der Suche hängt vom Schlüssel des einzufügenden Objekts ab. 36

37 Offene Adressierung (2) Keine Listen zur Kollisionsvermeidung. Wenn Anzahl eingefügter Objekte ist m, dann sind keine weiteren Einfügungen mehr möglich. Listen zur Kollisionsvermeidung möglich, aber Ziel von offener Adressierung ist es, Verfolgen von Verweisen zu vermeiden. Da keine Listen benötigt werden, kann die Hashtabelle vergrößert werden. Suchen von Objekten in der Regel schneller, da keine Listen linear durchsucht werden müssen. 37

38 Offene Adressierung (3) Laufzeit für Einfügen nur noch im Durchschnitt Θ(1). Entfernen von Objekten schwierig, deshalb Anwendung von offener Adressierung oft nur, wenn Entfernen nicht benötigt wird. 38

39 Hashfunktionen bei offener Adressierung Hashfunktion legt für jeden Schlüssel fest, in welcher Reihenfolge für Objekte mit diesem Schlüssel nach freier Position in Hashtabelle gesucht wird. Hashfunktion h von der Form { 0, 1,,m 1} { 0, 1, K, 1} h : U K m. m:=größe der Hashtabelle. Verlangen, dass für alle Schlüssel k die Folge ( h ( k, 0 ),h ( k, 1 ), K,h ( k,m 1 ) ) eine Permutation der 0, 1, K,m 1 ist. Folge ( ) ( ( k, 0),h( k, 1),,h( k,m 1) ) h K heisst Testfolge bei Schlüssel k. 39

40 Einfügen bei offener Adressierung ( T,k ) Hash - Insert 1 i 0 2 repeat j h ( k,i ) 3 if T [ j] = NIL 4 thent [ j] k 5 else i i until i = m 7 error "Hashtabelle vollständig gefüllt" Dabei zur Vereinfachung angenommen, dass keine Satellitendaten vorhanden, d.h., Objekt ist Schlüssel. 40

41 Einfügen bei offener Adressierung 41

42 Offene Adressierung - Illustration

43 Suchen bei offener Adressierung ( T,k ) Hash - Search 1 i 0 2 repeat j h ( k,i ) 3 if T [ j] = k 4 then return j 5 else i i until T [ j] = NIL i = m 7 return NIL 43

44 Probleme bei Entfernen Können Felder i mit gelöschten Schlüsseln nicht wieder mit NIL belegen, denn dann wird Suche nach Schlüsseln, bei deren Einfügung Position i getestet wird, fehlerhaft sein. Mögliche Lösung ist, Felder gelöschter Schlüssel mit DELETED zu markieren. Aber dann werden Laufzeiten für Hash-Insert und Hash-Delete nicht mehr nur vom Lastfaktor α=n/m abhängen. Daher Anwendung von offener Adressierung nur, wenn keine Objekte entfernt werden müssen. 44

45 Mögliche Hashfunktionen 1. h' : U { 0, 1, K, m 1} Funktion. Lineares Hashen: h k,i ( ) ( h' ( k ) + i ) mod m =. 2. h' : U {, 1, K,m 1} Funktion, c,c Quadratisches Hashen: h( k,i ) = h' ( k ) + c i 2 c i mod. ( ) m

46 Vergleich Hashfunktionen Im linearen und quadratischen Hashen bestimmt erste gestestete Position gesamte Testfolge. Damit jeweils nur m mögliche Testfolgen. Bei linearem Testfolgen zusätzlich lange zusammenhängende Folgen von besetzten Positionen 46

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

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

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Suchen in Listen und Hashtabellen

Suchen 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

Mehr

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

1. 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

Mehr

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

6-1 A. Schwill Grundlagen der Programmierung II SS 2005 6-1 A. Schwill Grundlagen der Programmierung II SS 25 6. Suchen Suchen = Tätigkeit, in einem vorgegebenen Datenbestand alle Objekte zu ermitteln, die eine best. Bedingung, das Suchkriterium, erfüllen und

Mehr

Einführung in die Informatik Hashtables

Einführung in die Informatik Hashtables Einührung in die Inormatik Hashtables Hashtabellen Wolram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben bisher einige der typischen Datenstrukturen zum Speichern von Inormationen kennen gelernt Arrays

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. 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

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen 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

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

Vorlesung 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)

Mehr

Programmiertechnik II

Programmiertechnik 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,...

Mehr

Kapitel 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 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:

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Algorithmen 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. 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)

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & 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

Mehr

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

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen 9.4 Binäre Suchbäume Erweiterung: Einfügen an der Wurzel Standardimplementierung: Der neue Schlüssel wird am Ende des Suchpfades angefügt (natürlich, weil zuerst festgestellt werden muss, ob der Schlüssel

Mehr

Name: 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. 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?

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, 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)

Mehr

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind.

! 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

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & 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

Mehr

Kap. 4.2: Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:

Mehr

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

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

Datenstrukturen in Java

Datenstrukturen in Java Datenstrukturen in Java SEP 350 Datenstrukturen Datenstrukturen ermöglichen Verwaltung von / Zugriff auf Daten (hier: Objekte) Datenstrukturen unterscheiden sich duch Funktionalität Implementierung modulares

Mehr

Kapitel 9. Hashverfahren. 9.1 Einführung

Kapitel 9. Hashverfahren. 9.1 Einführung Kapitel 9 Hashverfahren 9.1 Einführung Uns sind bereits Verfahren bekannt, mit denen Datensätze mit einem eindeutigen Schlüssel gespeichert werden (z.b. B*-Bäume). Statt bei der Suche nach einem Schlüssel

Mehr

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

Grundlagen 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.

Mehr

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

1. 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

Mehr

Kapitel 5: Dynamisches Programmieren Gliederung

Kapitel 5: Dynamisches Programmieren Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

3. Übung Algorithmen I

3. Ü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

Mehr

Kapitel 9 Suchalgorithmen

Kapitel 9 Suchalgorithmen Kapitel 9 Suchalgorithmen Technische Universität München Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für

Mehr

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.

In 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.

Mehr

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

Wiederholung 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

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 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

Mehr

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011 Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei

Mehr

Lösungsblatt zur Vorlesung. Kryptanalyse WS 2009/2010. Blatt 6 / 23. Dezember 2009 / Abgabe bis spätestens 20. Januar 2010, 10 Uhr (vor der Übung)

Lösungsblatt zur Vorlesung. Kryptanalyse WS 2009/2010. Blatt 6 / 23. Dezember 2009 / Abgabe bis spätestens 20. Januar 2010, 10 Uhr (vor der Übung) Ruhr-Universität Bochum Lehrstuhl für Kryptologie und IT-Sicherheit Prof. Dr. Alexander May Mathias Herrmann, Alexander Meurer Lösungsblatt zur Vorlesung Kryptanalyse WS 2009/2010 Blatt 6 / 23. Dezember

Mehr

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

Mehr

OPERATIONEN AUF EINER DATENBANK

OPERATIONEN AUF EINER DATENBANK Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:

Mehr

Studentische Lösung zum Übungsblatt Nr. 7

Studentische Lösung zum Übungsblatt Nr. 7 Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int

Mehr

Kap. 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 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

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

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

Mehr

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

3.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)

Mehr

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

Programmieren in Haskell

Programmieren in Haskell Programmieren in Haskell Felder (Arrays) Programmieren in Haskell 1 Was wir heute machen Motivationsbeispiel Die Typklasse Ix Felder in Haskell Funktionstabellierung Binäre Suche Pascalsches Dreieck Ein

Mehr

Sortierte Folgen 250

Sortierte 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:

Mehr

Duplikatfilterung und Sampling von Webseiten

Duplikatfilterung und Sampling von Webseiten Duplikatfilterung und Sampling von Webseiten Seminar Suchmaschinen, Wintersemester 2007/2008 Martin Sauerhoff Lehrstuhl 2, Universität Dortmund Übersicht 1. Duplikatfilterung: 1.1 Gleichheitstest mit Fingerabdrücken

Mehr

Vorlesung 09: Mengen. Peter Thiemann SS 2010

Vorlesung 09: Mengen. Peter Thiemann SS 2010 Vorlesung 09: Mengen Peter Thiemann Universität Freiburg, Germany SS 2010 Peter Thiemann (Univ. Freiburg) JAVA 1 / 43 Inhalt Mengen HashSet LinkedHashSet CopyOnWriteArraySet EnumSet SortedSet NavigableSet

Mehr

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

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Definition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = +

Definition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = + Definition Gnutella Ein -to--netzwerk ist ein Kommunikationsnetzwerk zwischen Rechnern, in dem jeder Teilnehmer sowohl Client als auch Server- Aufgaben durchführt. Beobachtung: Das Internet ist (eigentlich

Mehr

Kapitel 8: Physischer Datenbankentwurf

Kapitel 8: Physischer Datenbankentwurf 8. Physischer Datenbankentwurf Seite 1 Kapitel 8: Physischer Datenbankentwurf Speicherung und Verwaltung der Relationen einer relationalen Datenbank so, dass eine möglichst große Effizienz der einzelnen

Mehr

Microsoft Access 2010 Bilder

Microsoft Access 2010 Bilder Microsoft Access 2010 Bilder Hyperlinks... arbeiten ähnlich wie ein Link in einer Webseite. sind ein Verweis auf eine Datei (access2010\material\beispiel\tabledevelop\automat.accdb). können ein Verweis

Mehr

Einführung in Computer Microsystems

Einführung in Computer Microsystems Einführung in Computer Microsystems Kapitel 9 Entwurf eines eingebetteten Systems für Anwendungen in der IT-Sicherheit Prof. Dr.-Ing. Sorin A. Huss Fachbereich Informatik Integrierte Schaltungen und Systeme

Mehr

16. All Pairs Shortest Path (ASPS)

16. 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

Mehr

Einführung in die Informatik 1

Einfü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

Mehr

Programmiertechnik II

Programmiertechnik 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

Mehr

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

Lö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

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume 1 Kapitel 13 Ziele 2 Den Begriff des Baums in der Informatik kennenlernen als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf n verstehen und schreiben können Verschiedene Möglichkeiten

Mehr

Kurs 1613 Einführung in die imperative Programmierung

Kurs 1613 Einführung in die imperative Programmierung Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

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:

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: 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

Mehr

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen: 6 Partiell geordnete binäre Bäume: Heap (Haufen) Motivation für manchen Anwendungen nur partielle Ordnung der Elemente statt vollständiger nötig, z.b. - Prioritätsschlange: nur das minimale (oder maximale)

Mehr

Ferienakademie 2001: Kryptographie und Sicherheit offener Systeme. Faktorisierung. Stefan Büttcher stefan@buettcher.org

Ferienakademie 2001: Kryptographie und Sicherheit offener Systeme. Faktorisierung. Stefan Büttcher stefan@buettcher.org Ferienakademie 2001: Kryptographie und Sicherheit offener Systeme Faktorisierung Stefan Büttcher stefan@buettcher.org 1 Definition. (RSA-Problem) Gegeben: Ò ÔÕ, ein RSA-Modul mit unbekannten Primfaktoren

Mehr

Suchen und Sortieren

Suchen und Sortieren (Folie 69, Seite 36 im Skript) 5 6 1 4 Als assoziatives Array geeignet Schlüssel aus geordneter Menge Linke Kinder kleiner, rechte Kinder größer als Elternknoten Externe und interne Knoten Externe Knoten

Mehr

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

Informatik II. PVK Part1 Severin Wischmann wiseveri@student.ethz.ch n.ethz.ch/~wiseveri Informatik II PVK Part1 Severin Wischmann wiseveri@student.ethz.ch n.ethz.ch/~wiseveri KAUM JAVA Kaum Java Viel Zeit wird für Java-spezifisches Wissen benützt Wenig wichtig für Prüfung Letztjähriger Assistent

Mehr

Tutorium Algorithmen & Datenstrukturen

Tutorium Algorithmen & Datenstrukturen June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

RSA Full Domain Hash (RSA-FDH) Signaturen

RSA Full Domain Hash (RSA-FDH) Signaturen RSA Full Domain Hash (RSA-FDH) Signaturen Signatur RSA-FDH Sei H : {0, 1} Z N ein Random-Oracle. 1 Gen: (N, e, d) GenRSA(1 n ) mit pk = (N, e) und sk = (N, d). 2 Sign: Für eine Nachricht m {0, 1} berechne

Mehr

Faktorisierung ganzer Zahlen mittels Pollards ρ-methode (1975)

Faktorisierung ganzer Zahlen mittels Pollards ρ-methode (1975) Dass das Problem, die Primzahlen von den zusammengesetzten zu unterscheiden und letztere in ihre Primfaktoren zu zerlegen zu den wichtigsten und nützlichsten der ganzen Arithmetik gehört und den Fleiss

Mehr

Dateiorganisation und Zugriffsstrukturen

Dateiorganisation 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

Mehr

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

Programmieren ++ 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

Mehr

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

Name:... 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

Mehr

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP B-Bäume I Annahme: Sei die Anzahl der Objekte und damit der Datensätze. Das Datenvolumen ist zu groß, um im Hauptspeicher gehalten zu werden, z.b. 10. Datensätze auf externen Speicher auslagern, z.b. Festplatte

Mehr

Methoden des Algorithmenentwurfs Kapitel 2.2: Randomisierte Online Algorithmen

Methoden des Algorithmenentwurfs Kapitel 2.2: Randomisierte Online Algorithmen Methoden des Algorithmenentwurfs Kapitel 2.2: Randomisierte Online Algorithmen Christian Scheideler SS 2009 16.07.2009 Kapitel 2 1 Übersicht Notation Paging Selbstorganisierende Suchstrukturen Finanzielle

Mehr

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik)

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik) Vortrag Suchverfahren der Künstlichen Intelligenz Sven Schmidt (Technische Informatik) Suchverfahren der Künstlichen Intelligenz Grundlagen Zustandsraumrepräsentation Generische Suche Bewertung von Suchstrategien

Mehr

Über Arrays und verkettete Listen Listen in Delphi

Über Arrays und verkettete Listen Listen in Delphi Über Arrays und verkettete Listen Listen in Delphi Michael Puff mail@michael-puff.de 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung 3 2 Arrays 4 3 Einfach verkettete Listen 7 4 Doppelt verkettete

Mehr

Präfx Trie zur Stringverarbeitung. Cheng Ying Sabine Laubichler Vasker Pokhrel

Präfx Trie zur Stringverarbeitung. Cheng Ying Sabine Laubichler Vasker Pokhrel Präfx Trie zur Stringverarbeitung Cheng Ying Sabine Laubichler Vasker Pokhrel Übersicht: Einführung Eigenschaften von Tries Verwendung von Tries Allgemeine Defnition von Patricia Tries Eigenschaften von

Mehr

3.5 Balancierung gemäß Zugriffshäufigkeit

3.5 Balancierung gemäß Zugriffshäufigkeit Skript Index- und Speicherungsstrukturen Seite 34 3.5 Balancierung gemäß Zugriffshäufigkeit Bisherige (implizite) Annahme: die Zugriffshäufigkeit aller Datensätze ist gleichverteilt. aber: Diese Annahme

Mehr

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

S=[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

Mehr

BTree.dll - Balancierte und verkettete Bäume. Ecofor. BTree.dll. Realisiert mit Microsoft Visual Studio 16.04.2015 1/9

BTree.dll - Balancierte und verkettete Bäume. Ecofor. BTree.dll. Realisiert mit Microsoft Visual Studio 16.04.2015 1/9 BTree.dll Realisiert mit Microsoft Visual Studio 16.04.2015 1/9 INHALT 1. Allgemein... 3 2. Class BTree1 (balanciert)... 3 3. Class BTree2 (balanciert und verkettet)... 4 4. Beschreibung BTree1 und BTree2...

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

Vergleich verschiedener Möglichkeiten des Table-Lookups für größere Tabellen

Vergleich verschiedener Möglichkeiten des Table-Lookups für größere Tabellen Vergleich verschiedener Möglichkeiten des Table-Lookups für größere Tabellen Ralf Minkenberg Input Clinical Research GmbH Lütticher Str. 507 Aachen r.minkenberg@input-cro.de Zusammenfassung Sehr häufig

Mehr

Informatik II Greedy-Algorithmen

Informatik II Greedy-Algorithmen 7/7/06 lausthal Erinnerung: Dynamische Programmierung Informatik II reedy-algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Zusammenfassung der grundlegenden Idee: Optimale Sub-Struktur:

Mehr

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13 Dokumentation KREDITVERZEICHNIS Teil 2 Konfiguration Stand 20.02.2013 KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 2/13 Inhalt 1. KONFIGURATION...

Mehr

Technische Informatik I. Übung 3 Speicherhierarchie. v t d 0 d 1 d 2 d 3 0 1 2 3. Technische Informatik I Übung 3. Technische Informatik I Übung 3

Technische Informatik I. Übung 3 Speicherhierarchie. v t d 0 d 1 d 2 d 3 0 1 2 3. Technische Informatik I Übung 3. Technische Informatik I Übung 3 Institut für Kommunikationsnetze und Rechnersysteme Technische Informatik I Paul J. Kühn, Matthias Meyer Übung 3 Speicherhierarchie Inhaltsübersicht Aufgabe 3.1 Daten-Cache Aufgabe 3.2 Virtueller Speicher

Mehr

Binäre Suchbäume. Ein Leitprogramm von Timur Erdag und Björn Steffen

Binäre Suchbäume. Ein Leitprogramm von Timur Erdag und Björn Steffen Binäre Suchbäume Ein Leitprogramm von Timur Erdag und Björn Steffen Inhalt: Bäume gehören zu den bedeutendsten Datenstrukturen in der Informatik. Dieses Leitprogramm gibt eine Einführung in dieses Thema

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

Funktionsübersicht. Beschreibung der zentralen Funktionen von PLOX

Funktionsübersicht. Beschreibung der zentralen Funktionen von PLOX Funktionsübersicht Beschreibung der zentralen Funktionen von PLOX Seite 2 Inhaltsverzeichnis 1. Überblick Architektur... 2 2. PLOX-Menüleiste: Eine Toolbox voll nützlicher Werkzeuge... 3 2.1 Login... 3

Mehr

2. Realisierung von Integrität und Authentizität

2. Realisierung von Integrität und Authentizität 2. Realisierung von Integrität und Authentizität Zur Prüfung der Integrität einer Nachricht oder Authentizität einer Person benötigt die prüfende Instanz eine zusätzliche Information, die nur vom Absender

Mehr

Randomisierte Algorithmen

Randomisierte Algorithmen Randomisierte Algorithmen Kapitel 2 Markus Lohrey Universität Leipzig http://www.informatik.uni-leipzig.de/~lohrey/rand WS 2005/2006 Markus Lohrey (Universität Leipzig) Randomisierte Algorithmen WS 2005/2006

Mehr

Übungen zu. Grundlagen der Kryptologie SS 2008. Hochschule Konstanz. Dr.-Ing. Harald Vater. Giesecke & Devrient GmbH Prinzregentenstraße 159

Übungen zu. Grundlagen der Kryptologie SS 2008. Hochschule Konstanz. Dr.-Ing. Harald Vater. Giesecke & Devrient GmbH Prinzregentenstraße 159 Übungen zu Grundlagen der Kryptologie SS 2008 Hochschule Konstanz Dr.-Ing. Harald Vater Giesecke & Devrient GmbH Prinzregentenstraße 159 D-81677 München Tel.: +49 89 4119-1989 E-Mail: hvater@htwg-konstanz.de

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen

HEUTE. 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

Mehr

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

Kapitel 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

Mehr

1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen...

1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen... Suchen und Sortieren In diesem Kapitel behandeln wir Algorithmen zum Suchen und Sortieren Inhalt 1. Grundlagen... 2 2. Sortieren... 6 1.1. Vertauschen... 13 1.2. Selektion... 16 1.3. Einfügen... 19 1.4.

Mehr

Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06

Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06 Balancierte Bäume Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06 2 Ziele AVL-Bäume als einen wichtigen Vertreter balancierter

Mehr

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

Eine 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

Mehr

Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1

Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1 Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1 1 Primzahltest 1.1 Motivation Primzahlen spielen bei zahlreichen Algorithmen, die Methoden aus der Zahlen-Theorie verwenden, eine zentrale Rolle. Hierzu

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests 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

Mehr

DAP2-Klausur 07.08.2004

DAP2-Klausur 07.08.2004 DAP2-Klausur 07.08.2004 Vorname : Familienname: Ich studiere (Bitte markieren): Informatik/Inform. Lehramt/Inf.technik/Physik/ Mathe/Statistik/Sonstiges: Bitte beachten: Auf jedem Blatt Matrikelnummer

Mehr

Anleitung für TYPO3... 1. Bevor Sie beginnen... 2. Newsletter anlegen... 2. Inhalt platzieren und bearbeiten... 3. Neuen Inhalt anlegen...

Anleitung für TYPO3... 1. Bevor Sie beginnen... 2. Newsletter anlegen... 2. Inhalt platzieren und bearbeiten... 3. Neuen Inhalt anlegen... Seite 1 von 11 Anleitung für TYPO3 Inhalt Anleitung für TYPO3... 1 Bevor Sie beginnen... 2 Newsletter anlegen... 2 Inhalt platzieren und bearbeiten... 3 Neuen Inhalt anlegen... 3 Bestehenden Inhalt bearbeiten...

Mehr