Algorithmen und Datenstrukturen
|
|
- Babette Meta Heidrich
- vor 6 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil Hash-Verfahren Version vom: 18. November / 28
2 Vorlesung November / 28
3 Hash-Verfahren Beim Hashing werden die Schlüssel der Objekte für die Berechnung einer Position in einem Feld verwendet. Sei K eine Schlüsselmenge und I eine endliche Indexmenge (in der Regel I = {0, 1, 2..., m 1}). Die Hash-Funktion h : K I wird zum Suchen und zum Platzieren der Elemente eingesetzt. Sie soll die Schlüssel gleichmäßig auf die Indizes verteilen und den Indexbereich ausschöpfen. Sie soll schnell zu berechnen sein. 3 / 28
4 Hash-Verfahren Wenn mehrere Schlüssel auf denselben Index abgebildet werden, spricht man von einer Kollision. Bei einer Kollision muss ein Ersatzplatz gefunden werden. Welche Funktionen sind als Hash-Funktion geeignet? In der Praxis hat sich Ausblenden und Restbildung bewährt. Ausblenden: Benutze nur einen Teil des Schlüssels (nicht alle Stellen). Restbildung: Der verbleibende Schlüssel k wird ganzzahlig durch die Länge der Hashtabelle dividiert. Der Rest wird als Index verwendet. h(k) = k mod I Die besten Ergebnisse erhält man, wenn I eine Primzahl ist. Schlüssel, die nicht als Zahlen interpretiert werden können, müssen vorher geeignet umgerechnet werden. 4 / 28
5 Hash-Verfahren Beispiel Schlüssel sind Zeichenketten der Länge 2. Zeichen werden als Zahlen interpretiert (ASCII = American Standard Code for Information Interchange). Die entstandenen Zahlen werden zum Schlüssel addiert. Zeichenkette k 1 k 2 k = k 1 + k 2 i = k mod 7 GL LX SL GT RX GX / 28
6 Hash-Verfahren - Universelle Hash-Funktionen Universelle Hash-Funktionen Gesucht sind Hash-Funktionen, die im Mittel akzeptabel sind. Sei m = I und H eine endliche Menge von m Hash-Funktionen. H heißt universell, wenn für jedes Paar von verschiedenen Schlüsseln x, y K gilt: H {h H h(x) = h(y)} m Für jedes Schlüsselpaar x, y führt höchstens der m-te Teil der Hash-Funktionen die beiden Schlüssel x und y zu einer Kollision. 6 / 28
7 Hash-Verfahren - Universelle Hash-Funktionen Die Wahrscheinlichkeit, dass zwei Schlüssel mit einer Hash-Funktion aus H auf den gleichen Index abgebildet werden ist 1 m. Sei p m eine Primzahl und mit Dann ist h a,b : {0,..., p 1} {0,..., m 1} h a,b (x) = ((ax + b) mod p) mod m. {h a,b 1 a < p, 0 b < p} eine universelle Klasse von Hash-Funktionen (lineare Algebra). 7 / 28
8 Hash-Verfahren - Kollisionsauflösung Kollisionsauflösung: Probleme treten auf: bei der Platzierung, wenn der Eintrag auf der berechneten Hash-Adresse nicht leer ist, bei der Suche, wenn der berechnete Platz ein anderes Element enthält. Zur Kollisionsauflösung muss ein Ersatzplatz gefunden werden. 8 / 28
9 Hash-Verfahren - Kollisionsauflösung 1. Verkettung der Überläufer: Die Überläufer können zum Beispiel in einer linearen Liste verkettet werden, welche an den Hashtabelleneintrag angehängt wird, der sich aus der Hash-Funktion angewendet auf den Schlüssel ergibt. Bei einer erfolglosen Suche nach Schlüssel k betrachten wir alle Elemente in der Liste an h(k). Die durchschnittliche Anzahl der Einträge in h(k) ist n/m, wenn n Einträge auf m Listen verteilt sind. 9 / 28
10 Hash-Verfahren - Kollisionsauflösung Belegungsfaktor: α = n m Im Mittel ist die Anzahl der bei der erfolglosen Suche nach einem Schlüssel betrachteten Einträge also C n = n m = α Beim Einfügen des j-ten Schlüssels ist die durchschnittliche Listenlänge gerade (j 1)/m. Also betrachten wir bei einer späteren Suche nach dem j-ten Schlüssel gerade 1 + (j 1)/m Einträge im Durchschnitt, wenn stets am Listenende eingefügt und kein Datensatz entfernt wurde. 10 / 28
11 Hash-Verfahren Im Mittel ist die Anzahl der bei der erfolgreichen Suche nach einem Schlüssel betrachteten Einträge also C n = 1 n n (1 + (j 1)/m) = 1 + n 1 2m 1 + α 2 j=1 Bemerkung: n j = j=1 n(n + 1) 2 n n 1 (j 1) = j = j=1 j=0 (n 1)n 2 11 / 28
12 Hash-Verfahren - Offene Hash-Verfahren 2. Offene Hash-Verfahren: Speichere die Überläufer in der Hashtabelle und nicht in zusätzlichen Listen. Nur sinnvoll für α < 1. Ist die Hash-Adresse h(k) belegt, so wird eine Ausweichposition gesucht. Die Folge der zu betrachtenden Speicherplätze für einen Schlüssel nennt man Sondierungsfolge. Sei h : K {0,..., m 1} eine Hash-Funktion und s : {0,..., m 1} K N 0 eine Funktion, so dass für jedes k K, die Folge (h(k) s(j, k)) mod m für j = 0, 1,..., m 1 eine Permutation aller Hash-Adressen 0,..., m 1 ist, dann ist s eine Sondierungsfunktion für h. / 28
13 Hash-Verfahren - Lineares Sondieren Lineares Sondieren: Beim linearen Sondieren ist für Schlüssel k die Sondierungsfolge h(k), h(k) 1, h(k) 2,..., 0, m 1,..., h(k) + 1 Die Sondierungsfunktion ist somit s(j, k) = j 13 / 28
14 Hash-Verfahren - Lineares Sondieren Beispiel h(k) = k mod 7, s(j, k) = j (lineares Sondieren) Einfügen der Schlüssel, 3,, 1, 2, / 28
15 Hash-Verfahren - Lineares Sondieren Nachteil: Das Verfahren neigt zur primären Häufung, indem gewisse Bereiche keine Lücke mehr aufweisen. 1 / 28
16 Hash-Verfahren - Quadratisches Sondieren Quadratisches Sondieren: Es wird um h(k) herum mit quadratisch wachsendem Abstand nach einem freien Platz gesucht (in beide Richtungen). Sondierungsfolge: h(k), (h(k) + 1) mod m, (h(k) 1) mod m, (h(k) + 4) mod m, (h(k) 4) mod m,... Sondierungsfunktion: s(j, k) = ( j/2 ) 2 ( 1) j Wenn m ein Primzahl der Form 4i + 3, i N, ist, dann ist garantiert, dass die Sondierungsfolge Modulo m eine Permutation der Hash-Adressen 0 bis m 1 ist (ohne Beweis). 16 / 28
17 Hash-Verfahren - Quadratisches Sondieren Beispiel Für m = 13 ist die Sondierungsfolge keine Permutation der Hash-Adressen 0 bis m 1. k mod 13 ( 0/2 ) 2 ( 1) 0 mod 13 = k mod 13 = k + 0 mod 13 k mod 13 ( 1/2 ) 2 ( 1) 1 mod 13 = k + 1 mod 13 = k + 1 mod 13 k mod 13 ( 2/2 ) 2 ( 1) 2 mod 13 = k 1 mod 13 = k + mod 13 k mod 13 ( 3/2 ) 2 ( 1) 3 mod 13 = k + 4 mod 13 = k + 4 mod 13 k mod 13 ( 4/2 ) 2 ( 1) 4 mod 13 = k 4 mod 13 = k + 9 mod 13 k mod 13 ( /2 ) 2 ( 1) mod 13 = k + 9 mod 13 = k + 9 mod 13 k mod 13 ( 6/2 ) 2 ( 1) 6 mod 13 = k 9 mod 13 = k + 4 mod 13 k mod 13 ( 7/2 ) 2 ( 1) 7 mod 13 = k + 16 mod 13 = k + 3 mod 13 k mod 13 ( 8/2 ) 2 ( 1) 8 mod 13 = k 16 mod 13 = k + 10 mod 13 k mod 13 ( 9/2 ) 2 ( 1) 9 mod 13 = k + 2 mod 13 = k + mod 13 k mod 13 ( 10/2 ) 2 ( 1) 10 mod 13 = k 2 mod 13 = k + 1 mod 13 k mod 13 ( 11/2 ) 2 ( 1) 11 mod 13 = k + 36 mod 13 = k + 10 mod 13 k mod 13 ( /2 ) 2 ( 1) mod 13 = k 36 mod 13 = k + 3 mod 13 Es fehlen die Indices ((k + j) mod 13) mit j {2,, 6, 7, 8, 11}. 17 / 28
18 Hash-Verfahren - Quadratisches Sondieren Beispiel h(k) = k mod 7, s(j, k) = ( j/2 ) 2 ( 1) j (quadratisches Sondieren) Einfügen der Schlüssel, 3,, 1, 2, (Fehler: 19 3) 18 / 28
19 Hash-Verfahren - Quadratisches Sondieren Nachteil: Zwei Schlüssel k und k mit h(k) = h(k ) durchlaufen stets dieselbe Sondierungsfolge. Sie behindern sich also auf Ausweichplätzen (sekundäre Häufung). 19 / 28
20 Hash-Verfahren - Quadratisches Sondieren Eine Analyse der Effizienz des linearen und quadratischen Sondierens zeigt, dass für die durchschnittliche Anzahl der bei erfolgloser bzw. erfolgreicher Suche betrachteten Einträge C n bzw. C n gilt: 1 Lineares Sondieren: C n 1 ( ) (1 α) 2 2 Quadratisches Sondieren: ( ) 1 C n 1 + ln α 1 α 2 C n 1 2 ( ) (1 α) C n 1 ( ) 1 1 α α + ln 1 α Bemerkung: Offene Hash-Verfahren sind immer ineffizienter als eine Verkettung der Überläufer. 20 / 28
21 Hash-Verfahren Vergleich der Effizienz zwischen linearem und quadratischem Sondieren: linear quadratisch α erfolgreich erfolglos erfolgreich erfolglos / 28
22 Hash-Verfahren - Double Hashing Verbesserte Kollisionsauflösung: Schlüsselabhängige Sondierung (double Hashing): Verwende für die Sondierungsfolge eine zweite Hash-Funktion h. Sondierungsfolge: h(k), (h(k) h (k)) mod m, (h(k) 2 h (k)) mod m,......, (h(k) (m 1) h (k)) mod m 22 / 28
23 Hash-Verfahren - Double Hashing Sondierungsfunktion: s(j, k) = j h (k) Die Funktion h muss so gewählt werden, dass die Sondierungsfolge eine Permutation der Hash-Adressen ist. Das bedeutet, dass h (k) 0 sein muss und m nicht teilen darf. Ist m eine Primzahl und h(k) = k mod m, so erfüllt h (k) = 1 + (k mod (m 2)) die erwarteten Anforderungen. Anmerkung: h (k) = 1 + (k mod (m 1)) würde die Anforderungen auch erfüllen, wird aber ungern verwendet, da m 1 eine grade Zahl ist. Unterschiedliche Schlüssel, die auf denselben Index abgebildet werden, erhalten unterschiedliche Inkremente. 23 / 28
24 Hash-Verfahren - Double Hashing Beispiel m = 7, h(k) = k mod 7, h (k) = 1 + (k mod ) Einfügen der Schlüssel, 3,, 1, 2, / 28
25 Hash-Verfahren Verbesserung der erfolgreichen Suche: Die durchschnittliche Suchzeit bei der erfolgreichen Suche variiert bei Hash-Verfahren ohne Häufung mit unterschiedlicher Reihenfolge des Einfügens der Schlüssel. In Fällen, in denen wesentlich häufiger gesucht wird als eingefügt, kann es lohnend sein, die Schlüssel beim Einfügen eines neuen Schlüssels so zu reorganisieren, dass die Suchzeit verkürzt wird. 2 / 28
26 Hash-Verfahren - Brents Algorithmus Beim selben Double Hashing wie zuvor: Wird Schlüssel nach Inspektion der Plätze, 4, 3 bei Hash-Adresse 3 eingetragen, so ist die durchschnittliche Suchzeit der drei eingetragenen Elemente ( )/3 = /3 = 1.66 (mittlere Zeile). Man hätte aber auch Schlüssel auf Platz setzen können und Schlüssel weiter sondieren lassen können. Dann wäre die durchschnittliche Suchzeit ( )/3 = 4/3 = 1.33 (untere Zeile). 26 / 28
27 Hash-Verfahren - Brents Algorithmus Brents Algorithmus: Methode: Einfügen eines Schlüssels k: Beginne mit Hash-Adresse i = h(k). Falls Position i belegt ist, betrachte die beiden Hash-Adressen b = (i h (k)) mod m und b = (i h (k )) mod m, wobei k der Schlüssel auf Hash-Adresse i ist. Ist b eine freie Hash-Adresse, dann positioniere Schlüssel k auf Position b, ansonsten, ist b eine freie Hash-Adresse, dann positioniere Schlüssel k auf Position i und k auf Position b, ansonsten fahre rekursiv fort mit dem Versuch Schlüssel k auf Position i = b zu positionieren. 27 / 28
28 Hash-Verfahren - Brents Algorithmus Beispiel m = 7, h(k) = k mod 7, h (k) = 1 + (k mod ) Einfügen der Schlüssel, 3,, 1, 2, / 28
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
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)
MehrKapitel 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
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 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
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.
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.
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)
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
Mehr6-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
MehrDLP. Adolphe Kankeu Tamghe papibobo@informatik.uni-bremen.de ALZAGK SEMINAR. Bremen, den 18. Januar 2011. Fachbereich Mathematik und Informatik 1 / 27
DLP Adolphe Kankeu Tamghe papibobo@informatik.uni-bremen.de Fachbereich Mathematik und Informatik ALZAGK SEMINAR Bremen, den 18. Januar 2011 1 / 27 Inhaltsverzeichnis 1 Der diskrete Logarithmus Definition
MehrFerienakademie 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
MehrKapitel 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
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
MehrDer 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
MehrLineare Gleichungssysteme
Lineare Gleichungssysteme Eines der am häufigsten auftretenden Standardprobleme der angewandten Mathematik ist das Lösen linearer Gleichungssysteme, etwa zur Netzwerkberechnung in der Elektrotechnik oder
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
MehrHOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von.
HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG Fakultät Informatik Das Luzifer-Rätsel Prof. Dr. Hartmut Plesske Wintersemester 2008/09 von Max Nagl nagl@fh-konstanz.de Inhaltsverzeichnis Inhaltsverzeichnis
MehrFolge 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
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:
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,...
MehrFaktorisierung 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
MehrComputeralgebra in der Lehre am Beispiel Kryptografie
Kryptografie Grundlagen RSA KASH Computeralgebra in der Lehre am Beispiel Kryptografie Institut für Mathematik Technische Universität Berlin Kryptografie Grundlagen RSA KASH Überblick Kryptografie mit
Mehrt r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )
Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen
MehrReihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03
Reihungen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende Algorithmen auf Reihungen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes
Mehr1. 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
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
Mehr1. 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.
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
MehrKapitel 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
MehrDigitale Signaturen. Sven Tabbert
Digitale Signaturen Sven Tabbert Inhalt: Digitale Signaturen 1. Einleitung 2. Erzeugung Digitaler Signaturen 3. Signaturen und Einweg Hashfunktionen 4. Digital Signature Algorithmus 5. Zusammenfassung
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
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
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
MehrKap. 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:
MehrVorkurs Informatik WiSe 15/16
Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner
MehrWS 2008/09. Diskrete Strukturen
WS 2008/09 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0809
Mehr2: 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,
MehrProgrammieren in C. Rekursive Funktionen. Prof. Dr. Nikolaus Wulff
Programmieren in C Rekursive Funktionen Prof. Dr. Nikolaus Wulff Rekursive Funktionen Jede C Funktion besitzt ihren eigenen lokalen Satz an Variablen. Dies bietet ganze neue Möglichkeiten Funktionen zu
MehrAuthentikation und digitale Signatur
TU Graz 23. Jänner 2009 Überblick: Begriffe Authentikation Digitale Signatur Überblick: Begriffe Authentikation Digitale Signatur Überblick: Begriffe Authentikation Digitale Signatur Begriffe Alice und
MehrAbschnitt: 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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)
MehrInformatik 11 Kapitel 2 - Rekursive Datenstrukturen
Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange
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
MehrDefinition. 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
MehrSerienbrief erstellen
Serienbrief erstellen Mit einem perfekt vorbereiteten Serienbrief können Sie viel Zeit sparen. In unserem Beispiel lesen wir die Daten für unseren Serienbrief aus einer Excel Tabelle aus. Die Tabelle hat
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
Mehr5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12)
Technische Universität München Zentrum Mathematik PD Dr. hristian Karpfinger http://www.ma.tum.de/mathematik/g8vorkurs 5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12) Aufgabe 5.1: In einer Implementierung
MehrBestimmung einer ersten
Kapitel 6 Bestimmung einer ersten zulässigen Basislösung Ein Problem, was man für die Durchführung der Simplexmethode lösen muss, ist die Bestimmung einer ersten zulässigen Basislösung. Wie gut das geht,
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
Mehr368 4 Algorithmen und Datenstrukturen
Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist
MehrKryptographische Verfahren. zur Datenübertragung im Internet. Patrick Schmid, Martin Sommer, Elvis Corbo
Kryptographische Verfahren zur Datenübertragung im Internet Patrick Schmid, Martin Sommer, Elvis Corbo 1. Einführung Übersicht Grundlagen Verschlüsselungsarten Symmetrisch DES, AES Asymmetrisch RSA Hybrid
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen
MehrPrimzahlzertifikat von Pratt
Primzahlzertifikat von Pratt Daniela Steidl TU München 17. 04. 2008 Primzahltests in der Informatik "Dass das Problem, die Primzahlen von den Zusammengesetzten zu unterscheiden und letztere in ihre Primfaktoren
MehrTheoretische Informatik
Theoretische Informatik für die Studiengänge Ingenieur-Informatik berufsbegleitendes Studium Lehramt Informatik (Sekundar- und Berufsschule) http://theo.cs.uni-magdeburg.de/lehre04s/ Lehrbeauftragter:
MehrDas RSA-Verfahren. Armin Litzel. Proseminar Kryptographische Protokolle SS 2009
Das RSA-Verfahren Armin Litzel Proseminar Kryptographische Protokolle SS 2009 1 Einleitung RSA steht für die drei Namen Ronald L. Rivest, Adi Shamir und Leonard Adleman und bezeichnet ein von diesen Personen
MehrWas bisher geschah Kryptographische Systeme (M, C, K, e, d) Verfahren: symmetrisch klassisch: Verschiebechiffren (Spezialfall Caesar-Code)
Was bisher geschah Kryptographische Systeme (M, C, K, e, d) Verfahren: symmetrisch klassisch: Verschiebechiffren (Spezialfall Caesar-Code) Multiplikative Chiffren monoalphabetische Substitutions-Chiffren:
MehrKONSTRUKTION VON ROT-SCHWARZ-BÄUMEN
KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN RALF HINZE Institut für Informatik III Universität Bonn Email: ralf@informatik.uni-bonn.de Homepage: http://www.informatik.uni-bonn.de/~ralf Februar, 2001 Binäre Suchbäume
MehrOptimalitätskriterien
Kapitel 4 Optimalitätskriterien Als Optimalitätskriterien bezeichnet man notwendige oder hinreichende Bedingungen dafür, dass ein x 0 Ω R n Lösung eines Optimierungsproblems ist. Diese Kriterien besitzen
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
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
MehrMathematik und Logik
Mathematik und Logik 6. Übungsaufgaben 2006-01-24, Lösung 1. Berechnen Sie für das Konto 204938716 bei der Bank mit der Bankleitzahl 54000 den IBAN. Das Verfahren ist z.b. auf http:// de.wikipedia.org/wiki/international_bank_account_number
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
Mehr9.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
MehrKryptologie und Kodierungstheorie
Kryptologie und Kodierungstheorie Alexander May Horst Görtz Institut für IT-Sicherheit Ruhr-Universität Bochum Lehrerfortbildung 17.01.2012 Kryptologie Verschlüsselung, Substitution, Permutation 1 / 18
MehrVortrag. 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
MehrRaumbezogene Datenbanken (Spatial Databases)
Raumbezogene Datenbanken (Spatial Databases) Ein Vortrag von Dominik Trinter Alexander Christian 1 Inhalte Was ist ein raumbezogenes DBMS? Modellierung Abfragen Werkzeuge zur Implementierung Systemarchitektur
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
MehrDigitale Magazine ohne eigenen Speicher
Stefan Lucks Digitale Magazine ohne eigenen Speicher 1 Digitale Magazine ohne eigenen Speicher Wie man die Integrität fremdgespeicherter Archivalien sicherstellen kann Stefan Lucks Professur für Mediensicherheit
Mehr4. 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Über das Hüten von Geheimnissen
Über das Hüten von Geheimnissen Gabor Wiese Tag der Mathematik, 14. Juni 2008 Institut für Experimentelle Mathematik Universität Duisburg-Essen Über das Hüten von Geheimnissen p.1/14 Rechnen mit Rest Seien
MehrÜbersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15
Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen
MehrÜbungen zur Vorlesung Computergrundlagen WS 2008/09 Fakultät Physik, Universität Stuttgart Jens Harting, Martin Hecht, Bibhu Biswal Blatt 14
Übungen zur Vorlesung Computergrundlagen WS 2008/09 Fakultät Physik, Universität Stuttgart Jens Harting, Martin Hecht, Bibhu Biswal Blatt 14 Aufgabe 33: Felder Felder (oder auch Arrays ) werden dazu benutzt,
MehrVerschlüsselung. Chiffrat. Eve
Das RSA Verfahren Verschlüsselung m Chiffrat m k k Eve? Verschlüsselung m Chiffrat m k k Eve? Aber wie verteilt man die Schlüssel? Die Mafia-Methode Sender Empfänger Der Sender verwendet keine Verschlüsselung
MehrAnleitung zum GEPA EXCEL Import Tool
Anleitung zum GEPA EXCEL Import Tool Mit diesem Tool können Sie Ihren GEPA Warenkorb (Weltläden und Gruppen) mit Hilfe von Excel-Listen, die Sie aus Ihrer Warenwirtschaft generieren oder händisch erstellen,
MehrRSA Verfahren. Kapitel 7 p. 103
RSA Verfahren RSA benannt nach den Erfindern Ron Rivest, Adi Shamir und Leonard Adleman war das erste Public-Key Verschlüsselungsverfahren. Sicherheit hängt eng mit der Schwierigkeit zusammen, große Zahlen
MehrInf 12 Aufgaben 14.02.2008
Inf 12 Aufgaben 14.02.2008 Übung 1 (6 Punkte) Ermitteln Sie eine mathematische Formel, die die Abhängigkeit der Suchzeit von der Anzahl der Zahlen N angibt und berechnen Sie mit Ihrer Formel die durchschnittliche
MehrOPERATIONEN 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:
MehrElemente der Analysis I Kapitel 2: Einführung II, Gleichungen
Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen Prof. Dr. Volker Schulz Universität Trier / FB IV / Abt. Mathematik 8. November 2010 http://www.mathematik.uni-trier.de/ schulz/elan-ws1011.html
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?
MehrEinführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)
Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff
MehrIdeen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou
Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort Equivalenz?
MehrHerbst. Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen. Prüfungsteilnehmer prüfungstermin Einzelprüfungsnummei. - Prüfungsaufgaben -
Prüfungsteilnehmer prüfungstermin Einzelprüfungsnummei Kennzahl: Kennwort: Arbeitsplatz-Nr.: Herbst 2000 46114 Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen - Prüfungsaufgaben - Fach: Einzelprüfung:
Mehr5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)
5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!
MehrLenstras Algorithmus für Faktorisierung
Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit
MehrInstitut fu r Informatik
Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2013 Aufgabenblatt 3 18. November
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
MehrDuplikatfilterung 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
Mehr6.3 Serienbriefe über Microsoft Excel und Word
6.3 Serienbriefe über Microsoft Excel und Word Handelt es sich um eine große Anzahl von Kontakten, die an einem Mailing teilnehmen soll, kann es vorteilhaft sein, den Serienbrief über Microsoft Excel und
MehrRepräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen
Kapitel 4: Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Codierung von rationalen Zahlen Konvertierung
MehrZusatztutorium, 25.01.2013
Zusatztutorium, 25.01.2013 David Müßig muessig[at]mi.fu-berlin.de http://page.mi.fu-berlin.de/def/tutorium/ WiSe 12/13 1 Der Homomorphiesatz Der Homomorphiesatz scheint für viele eine Art rotes Tuch zu
MehrExtrem kurzer Einstieg in die Programmierung mit Java
Extrem kurzer Einstieg in die Programmierung mit Java Material für die Vorbereitungskurse Felix-Klein-Gymnasium Göttingen Andreas Flemming, November 2008 Was ist ein Computerprogramm? mit Java Auch in
MehrTechnische 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
MehrAlgorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung
Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung 1 Kapitel III Skalierbare Peer to Peer-Netzwerke Tapestry von Zhao, Kubiatowicz und Joseph (2001) Netzw erke 2 Tapestry
MehrSIZ-Spickzettel Word 2003
SIZ-Spickzettel Word 2003 1, 1.1, 1.1.1 Sie müssen die Überschriften 1, 2 und 3 eines Dokuments gliedern, und zwar: Überschrift 1 = 1, Überschrift 2 = 1.1, Überschrift 3 = 1.1.1 usw. 1. Setzen Sie den
MehrSchritt für Schritt Anleitung zum Erstellen einer Android-App zum Ein- und Ausschalten einer LED
Schritt für Schritt Anleitung zum Erstellen einer Android-App zum Ein- und Ausschalten einer LED Mit Google Chrome nach MIT App Inventor suchen. In den Suchergebnissen (siehe unten) auf
MehrSprechen wir über Zahlen (Karl-Heinz Wolff)
Sprechen wir über Zahlen (Karl-Heinz Wolff) Die Überschrift ist insoweit irreführend, als der Autor ja schreibt und nicht mit dem Leser spricht. Was Mathematik im allgemeinen und Zahlen im besonderen betrifft,
MehrLeitfaden Lineare Algebra: Determinanten
Leitfaden Lineare Algebra: Determinanten Die symmetrische Gruppe S n. Eine Permutation σ der Menge S ist eine bijektive Abbildung σ : S S. Ist S eine endliche Menge, so reicht es zu verlangen, dass σ injektiv
MehrExpander Graphen und Ihre Anwendungen
Expander Graphen und Ihre Anwendungen Alireza Sarveniazi Mathematisches Institut Universität Göttingen 21.04.2006 Alireza Sarveniazi (Universität Göttingen) Expander Graphen und Ihre Anwendungen 21.04.2006
Mehr