Grundlagen der Programmierung
|
|
- Evagret Lang
- vor 7 Jahren
- Abrufe
Transkript
1 Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung von Prof. Dr.-Ing. Faustmann (ebenfalls FHW Berlin) übernommen worden. Für die Bereitstellung dieses Vorlesungsmaterials möchte ich mich an dieser Stelle noch einmal recht herzlich bedanken Prof. Dr. Andreas Schmietendorf 1
2 Suchalgorithmen Prof. Dr. Andreas Schmietendorf 2
3 Suchalgorithmen Allgemeines Problem der Suche: Innerhalb einer Datensammlung wird nach einem oder mehreren Datensätzen mit einer bestimmten Eigenschaft gesucht. Beispiele für mögliche Datensammlungen: - Arrays - Listen - Dateien Man unterscheidet zwischen: - internem Suchen: alle Objekte der Suchmenge befinden sich im internen Speicher und - externem Suchen: die Objekte befinden sich teilweise auf externen Speichermedien Prof. Dr. Andreas Schmietendorf 3
4 Suchalgorithmen Lineare Suche (am Beispiel des Telefonbuches): Suche einer bestimmten Telefonnummer innerhalb des Telefonbuches ohne Kenntnis des Namens. - Alle Einträge beginnend bei dem ersten bis zum letzten sind zu durchsuchen. Erfolglose Suche es müssen alle N Einträge untersucht werden Erfolgreiche Suche kann beim 1., 2. oder letzten Eintrag beendet sein - Leistung eines solchen Algorithmus kann nur hinsichtlich seines worst case Verhaltens vorausgesagt werden. Potentielle Verbesserungen: - Nummern in eine bestimmte Reihenfolge (Sortierung) bringen - Verwendung eines Skip-Indexes Prof. Dr. Andreas Schmietendorf 4
5 Suchalgorithmen Prof. Dr. Andreas Schmietendorf 5
6 Suchalgorithmen Binäre Suche (am Beispiel des Telefonbuches): Grundidee: schrittweise Halbierung der Liste und Suche in den jeweiligen Listenhälften. - Telefonbuch in der Mitte aufschlagen und vergleichen des gesuchten Namens mit den Namen der aufgeschlagenen Seite Gesuchter Name ist zufällig gleich dem gesuchten Namen Suche fertig Gesuchter Name ist entsprechend der alphabetischen Ordnung größer weitere Suche nur noch in der 1. Hälfte des Telefonbuches Gesuchter Name ist entsprechend der alphabetischen Ordnung kleiner weitere Suche nur noch in der 2. Hälfte des Telefonbuches Anzahl benötigter Schritte Seiten Umfang nach höchstens 10 Schritten sind wir am Ziel Seiten Umfang - nach höchstens 11 Schritten sind wir am Ziel Prof. Dr. Andreas Schmietendorf 6
7 Suchalgorithmen Übung: Implementieren Sie eine Funktion (rekursiv oder iterativ): getsearchbin (int list[], int searchvalue) die für ein gegebenes Feld list[] von Integerwerten den Index des gesuchten Wertes searchvalue zurückliefert. Dabei soll die Funktion das binäre Suchverfahren nutzen. Ist searchvalue in dem Feld nicht enthalten, so liefert die Funktion den Ergebniswert -1. Testen Sie die Funktion mit dem folgenden Feld: final int LENGTH = 10000; int[] test = new int[length]; for (int i=0; i<length; i++){ } test[i] = 2 * i; Erlauben Sie dem Nutzer, verschiedene Suchwerte einzugeben Prof. Dr. Andreas Schmietendorf 7
8 Suchalgorithmen Prof. Dr. Andreas Schmietendorf 8
9 Hash-Funktionen Prof. Dr. Andreas Schmietendorf 9
10 Suche mittels Hashing Hashing als Erweiterung der schlüsselindizierten Suche: Bei der Nutzung einer Hash-Funktion werden Objekte nicht mehr an einer beliebigen Stelle in einem Feld gespeichert, sondern in Abhängigkeit von bestimmten Objekteigenschaften. Der Index für die Speicherung des Objekts im Feld ergibt sich dann aus dem Objekt selbst. Zweiteiliges Suchen beim Hashing: - Transformieren des Suchschlüssels mithilfe einer Hashfunktion Idealfall Abbildung unterschiedlicher Schlüssel auf unterschiedliche Adressen Ggf. können zwei oder auch mehrere unterschiedliche Schlüssel zur gleichen Adresse führen - Kollisionsbeseitigung mittels verschiedener Strategien Prof. Dr. Andreas Schmietendorf 10
11 Suche mittels Hashing Beispiele für Hash-Funktionen sind: Länge eines Wortes modulo Tabellengröße Summe der char-werte (interpretiert als Integers) eines Wortes modulo Tabellengröße Anfangsbuchstabe eines Wortes Der Modulo-Operator (verbleibender Rest einer ganzzahligen Teilung) wird durch das %-Zeichen realisiert. Bem.: in Java steht die Klasse Hashtable zur Verfügung Prof. Dr. Andreas Schmietendorf 11
12 Suche mittels Hashing Übung: Verwendung von Hashcodes: Verwenden Sie die von Ihnen implementierten verketteten Listen zur Analyse der je Knoten ausgegebenen Hashcodes. - Die Methode int hashcode() ererbt jede Klasse automatisch von der gemeinsamen Basisklasse Object! - Die Methode hashcode() verwendet zur Berechnung des Hashcodes die Speicheradresse des Objekts, überlegen Sie alternative Ansätze. Überlegen Sie sich einen methodischen Ansatz zur Vermeidung mehrdeutiger Hashcodes. Untersuchen Sie die Möglichkeiten der in Java zur Verfügung stehenden Klasse Hashtable und verwenden Sie diese mit Hilfe eines einfachen Beispiels zur Datenspeicherung und Datensuche Prof. Dr. Andreas Schmietendorf 12
13 Hashing in Java - Beispiel Prof. Dr. Andreas Schmietendorf 13
14 Hashing in Java - Beispiel Prof. Dr. Andreas Schmietendorf 14
15 Sortieralgorithmen Prof. Dr. Andreas Schmietendorf 15
16 Überblick Sortieralgorithmen Sortieralgorithmen werden für die effiziente Speicherung von Informationen und deren Auswertung bzw. Suche benötigt. Grundsätzlich werden unterschieden: - Interne Sortierung Bearbeitung von Listen im Hauptspeicher - Externe Sortierung Bearbeitung von Listen auf ext. Massenspeicher Klassische Sortierverfahren: - Bubble Sort vgl. zu aufsteigenden Blasen - Insert Sort -Sortierung durch Einfügen - Select Sort -Sortierung durch Auswählen Schnelle Sortieralgorithmen (Quick Sort, Merge Sort, Shear Sort, ) Prof. Dr. Andreas Schmietendorf 16
17 Bubble Sort Die Grundidee geht davon aus, dass aufsteigende Blasen ( Bubbles ) sich automatisch sortieren, indem die großen beim Aufsteigen die kleinen überholen. Die eigentliche Sortierung eines Arrays von Datensätzen erfolgt durch wiederholtes Vertauschen von Nachbarfeldern, die in falscher Reihenfolge stehen. Dieser Vorgang wird wiederholt, bis das Array vollständig sortiert ist, wobei das Array von links nach rechts durchwandert wird Prof. Dr. Andreas Schmietendorf 17
18 Bubble Sort Prof. Dr. Andreas Schmietendorf 18
19 Prinzip Bubble Sort Beispiel für BubbleSort -Visualisierung: Prof. Dr. Andreas Schmietendorf 19
20 Insert Sort Das Grundprinzip des Insert Sort (Sortierung durch Einfügen) besteht darin, ein beliebiges Element der noch nicht sortierten Daten aufzunehmen an der richtigen Stelle (gemäß der Sortierungsanforderung aufsteigend bzw. fallend) einzuordnen. Dem entsprechend ist bei diesem Verfahren zwischen dem sortierten und unsortierten Teil zu unterschieden Prof. Dr. Andreas Schmietendorf 20
21 Insert Sort Prof. Dr. Andreas Schmietendorf 21
22 Prinzip - Insert Sort Prof. Dr. Andreas Schmietendorf 22
23 Selection Sort Beim Selection Sort wird zwischen einem sortierten und unsortierten Teil (S und U) des Arrays unterschieden. Der zu Beginn unsortierte Teil U wird nach dem kleinsten Element durchsucht. Wird dieses gefunden, erfolgt ein Austausch mit dem jeweils ersten Element des unsortierten Arrays. Bei jedem Durchlauf erfolgt eine Verkleinerung von U bzw. einer Vergrößerung von S um jeweils ein Element Prof. Dr. Andreas Schmietendorf 23
24 Selection Sort Prof. Dr. Andreas Schmietendorf 24
25 Prinzip Selection Sort Beispiel für BubbleSort -Visualisierung: Minimum ist 1 daher Tauschen des 1. und 4. Elements Minimum ist 2 daher Tauschen des 2. und 5. Elements Minimum ist 3 daher kein Vertauschen richtige Stelle Minimum ist 4 daher kein Vertauschen richtige Stelle Komplett sortiertes Array Bem.: sortierter Teil unsortierter Teil Tauschoperationen Prof. Dr. Andreas Schmietendorf 25
26 Sortieralgorithmen Übung: Sortieralgorithmen Analysierten Sie die übergebenen Sortieralgorithmen hinsichtlich ihrer Funktionalität bzw. Wirkungsweise. Welche Aufwände entsprechend der O-Notation resultierenden aus den jeweiligen Sortieralgorithmen? Testen Sie die Sortieralgorithmen mit mit konkreten Werten innerhalb einer eigenen Java-Applikation. Optional: Betrachten Sie die Ausführungsgeschwindigkeit der verschiedenen Sortieralgorithmen mit Hilfe des referenzierten Java-Applets (siehe Folie 27) im Internet Prof. Dr. Andreas Schmietendorf 26
27 Aufwände für Sortieralgorithmen Prof. Dr. Andreas Schmietendorf 27
28 Sortieralgorithmen Aufwände für Sortieralgorithmen: Prof. Dr. Andreas Schmietendorf 28
29 Sortieralgorithmen Quelle: Prof. Dr. Andreas Schmietendorf 29
30 Sortieralgorithmen Shear Sort -Selbsstudium: Bei Shear Sort handelt sich um ein paralleles Sortierverfahren, wobei die zu sortierenden Elemente mit Hilfe einer 2-dimensionalen Matrix angeordnet werden. Das Laufzeitverhalten dieses Algorithmus beträgt O(log n), wobei exakt log n + 1 Schritte benötigt werden. Analysieren Sie die prinzipielle Funktionalität anhand einer beispielhaft zu sortierenden Matrix. Verwenden Sie das übergebene Studienmaterial bzw. weitere selbstständig zu recherchierende Informationen im Internet Prof. Dr. Andreas Schmietendorf 30
7. Sortieren Lernziele. 7. Sortieren
7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche
MehrAbschnitt 19: Sortierverfahren
Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758
MehrAlgorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 6. Vorlesung Martin Middendorf / Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Merge-Sort Anwendbar für
MehrGrundlegende Sortieralgorithmen
Grundlegende Sortieralgorithmen Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 01/05 2 Ziele Grundlegende Sortieralgorithmen auf Reihungen kennen lernen 3 Klassifizierung
MehrGrundlegende Sortieralgorithmen
Grundlegende Sortieralgorithmen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Grundlegende Sortieralgorithmen auf Reihungen kennen
MehrGrundlegende Sortieralgorithmen
Grundlegende Sortieralgorithmen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch Sortieren in Java Man kann Sortierverfahren in einem imperativem oder einem objektorientierten Stil programmieren.
Mehr(08 - Einfache Sortierverfahren)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (08 - Einfache Sortierverfahren) Prof. Dr. Susanne Albers Sortieren Motivation, Einführung Datenbestände müssen sehr oft sortiert werden, etwa um
MehrIn C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht:
Typprüfung (Compiler / Laufzeit) In C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht: 1) Der Compiler prüft
MehrInterne Sortierverfahren
Angewandte Datentechnik Interne Sortierverfahren Interne Sortierverfahren Ausarbeitung einer Maturafrage aus dem Fach A n g e w a n d t e D a t e n t e c h n i k Andreas Hechenblaickner 5CDH HTBLA Kaindorf/Sulm
MehrAlgorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing
Algorithmen I Tutorium 1-3. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-02 Überblick 1 Sortieren und Suchen 2 Mastertheorem 3 Datenstrukturen 4 Kreativaufgabe
MehrAlgorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.813 Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS 2014 22. Oktober
MehrKarlsruher Institut für Technologie Institut für Theoretische Informatik. Übungsklausur Algorithmen I
Vorname: Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Jörn Müller-Quade 21.06.2017 Übungsklausur Algorithmen I Aufgabe 1. Kleinaufgaben 8 Punkte Aufgabe 2. Hashing 6 Punkte
MehrKapitel 2. Weitere Beispiele Effizienter Algorithmen
Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte
MehrTeil VII. Hashverfahren
Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:
MehrGrundlagen der Informatik
Jörn Fischer j.fischer@hs-mannheim.de Willkommen zur Vorlesung Grundlagen der Informatik ADS-Teil Page 2 Überblick Inhalt 1 Eigenschaften von Algorithmen Algorithmenbegriff O-Notation Entwurfstechniken
MehrProgrammieren I. Kapitel 7. Sortieren und Suchen
Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren
MehrÜbung: Algorithmen und Datenstrukturen SS 2007
Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 5 Votierung in der Woche vom 04.06.0708.06.07 Aufgabe 12 Manuelle Sortierung
MehrProgrammierung mit C Algorithmen
Programmierung mit C Algorithmen Informationen /7/ Robert Sedgewick Algorithmen in C. 742 Seiten, ISBN 3-827-37182-1. /8/ Kyle Loudon Algorithmen mit C, ISBN 3-4897-211653-0. Online-Buch "C von A bis Z",
MehrJAVA - Suchen - Sortieren
Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik
Mehr3.2. Divide-and-Conquer-Methoden
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE 3.2. Divide-and-Conquer-Methoden Divide-and-Conquer-Methoden Einfache Sortieralgorithmen reduzieren die Größe des noch
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt
Mehr3. Hausübung Algorithmen und Datenstrukturen
Prof. Dr. Gerd Stumme, Folke Eisterlehner, Dominik Benz Fachgebiet Wissensverarbeitung 3. Hausübung Algorithmen und Datenstrukturen Sommersemester 2009 Abgabetermin: Montag, 18.05.2009, 10:00 Uhr 11.05.2009
MehrAlgorithms & Data Structures 2
Algorithms & Data Structures Digital Sorting WS B. Anzengruber-Tanase (Institute for Pervasive Computing, JKU Linz) (Institute for Pervasive Computing, JKU Linz) WIEDERHOLUNG :: UNTERE SCHRANKE FÜR SORTIEREN
MehrNAME, VORNAME: Studiennummer: Matrikel:
TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.
MehrAlgorithmen und Datenstrukturen 12
12. Juli 2012 1 Besprechung Blatt 11 Fragen 2 Binary Search Binäre Suche in Arrays Binäre Suchbäume (Binary Search Tree) 3 Sortierverfahren Allgemein Heapsort Bubblesort Insertionsort Mergesort Quicksort
MehrWas ist ein assoziativer Speicher?
Überblick 17. Datenstrukturen 17.1 Einleitung 17.2 Listen 17.3 Assoziative Speicher 17.4 Bäume 17.5 Mengen 17.6 Das Collections-Framework in Java 17.7 Zusammenfassung 17 Datenstrukturen 3 Assoziative Speicher
MehrKapitel 10. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrKapitel 3: Sortierverfahren 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(Digital) Sorting. October 25, Algorithms & Datastructures 2 Exercises WS 2016
(Digital) Sorting October 2, 2016 Algorithms & Datastructures 2 Exercises WS 2016 Dipl.-Ing. University Linz, Institute for Pervasive Computing Altenberger Straße 69, A-4040 Linz kurz@pervasive.jku.at
MehrEinführung in die Informatik Algorithmen und Datenstrukturen. Thema 17 Sortieren
Einführung in die Informatik Algorithmen und Datenstrukturen Thema 17 Sortieren Sortierproblem Es gibt eine Menge von Datensätzen, und jeder dieser Sätze besitzt einen (möglichst eindeutigen) Schlüssel.
MehrProgrammiertechnik II
Sortieren: Einfache Algorithmen Sortieren Abstrakte Operation geg: Menge von items (Elemente) jedes Element besitzt Sortierschlüssel Schlüssel unterliegen einer Ordnung eventuell sind doppelte Schlüssel
MehrSuchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 156, Seite 56 im Skript) Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die letzte Ebene vollständig besetzt ist,
MehrDatenstrukturen und Algorithmen. 7. Suchen in linearen Feldern
Datenstrukturen und Algorithmen 7. Suchen in linearen Feldern VO 708.031 Suchen in linearen Feldern robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Fortgeschrittene Datenstrukturen Such-Algorithmen
Mehr4. Sortieren 4.1 Vorbemerkungen
. Seite 1/21 4. Sortieren 4.1 Vorbemerkungen allgemeines Sortierproblem spezielle Sortierprobleme Ordne a 1,..., a n so um, dass Elemente in aufsteigender Reihenfolge stehen. Die a i stammen aus vollständig
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Kürzeste Wege, Heaps, Hashing Heute: Kürzeste Wege: Dijkstra Heaps: Binäre Min-Heaps Hashing:
Mehr2. Hausübung Algorithmen und Datenstrukturen
Prof. Dr. Gerd Stumme, Folke Eisterlehner, Dominik Benz Fachgebiet Wissensverarbeitung 7.4.009. Hausübung Algorithmen und Datenstrukturen Sommersemester 009 Abgabetermin: Montag, 04.05.009, 10:00 Uhr 1
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 Offenes Hashing) Prof. Dr. Susanne Albers Hashing: Allgemeiner Rahmen Schlüsselmenge S Universum U aller möglichen Schlüssel Hashfunktion h 0,,m-1
MehrDr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund
EINI LW/WiMa Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 12/13 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de
MehrEINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17
EINI LW/WiMa Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de
MehrAlgorithmen und Datenstrukturen. Kapitel 3: Sortierverfahren. Skript zur Vorlesung. Algorithmen und Datenstrukturen
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Algorithmen und Datenstrukturen Kapitel 3: Sortierverfahren Skript zur Vorlesung Algorithmen und Datenstrukturen Sommersemester
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrProgrammiertechnik II
Programmiertechnik II Hash-Tabellen Überblick Hashfunktionen: Abbildung von Schlüsseln auf Zahlen Hashwert: Wert der Hashfunktion Hashtabelle: Symboltabelle, die mit Hashwerten indiziert ist Kollision:
MehrZeitkomplexität beim Suchen und Sortieren
Zeitkomplexität beim Suchen und Sortieren Thomas Schwotzer 1 Einführung Programmieren bedeutet nahezu immer Algorithmen schreiben. Die Algorithmen, die wir entwickeln arbeiten mit Daten. Wir testen die
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrEINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12
EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de
MehrAlgorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de 4. Sortierverfahren Elementare Sortierverfahren - Sortieren durch
MehrStud.-Nummer: Datenstrukturen & Algorithmen Seite 1
Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Sortieren von Feldern (1) Einfache Sortieralgorithmen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 82 Motivation Natürliche Sortierung Sortierte Datenmengen
MehrAlgorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer
Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg
MehrProgrammiertechnik II
Hash-Tabellen Überblick Hashfunktionen: Abbildung von Schlüsseln auf Zahlen Hashwert: Wert der Hashfunktion Hashtabelle: Symboltabelle, die mit Hashwerten indiziert ist Kollision: Paar von Schlüsseln mit
MehrKapitel 4: Bäume i. 1. Einleitung. 2. Ein Datenmodell für Listen. 3. Doppelt-verkettete Listen. 4. Bäume. 5. Das Collections-Framework in Java
Kapitel 4: Bäume i 1. Einleitung 2. Ein Datenmodell für Listen 3. Doppelt-verkettete Listen 4. Bäume 5. Das Collections-Framework in Java Prof. Dr. Peer Kröger: EiP (WS 18/19) Teil 11: Datenstrukturen
MehrSatz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n).
2.6 Vergleichsbasierte Sortierverfahren Alle bisher betrachteten Sortierverfahren sind vergleichsbasiert, d.h. sie greifen auf Schlüssel k, k (außer in Zuweisungen) nur in Vergleichsoperationen der Form
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil Hash-Verfahren Version vom: 18. November 2016 1 / 28 Vorlesung 9 18. November 2016
MehrSuchen und Sortieren
Suchen und Sortieren Suchen Sortieren Mischen Zeitmessungen Bewertung von Sortier-Verfahren Seite 1 Suchverfahren Begriffe Suchen = Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge Sequentielles
MehrDas Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele
MehrDas Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.
MehrProf. Dr. Margarita Esponda
Algorithmen und Programmieren II Sortieralgorithmen imperativ Teil I Prof. Dr. Margarita Esponda Freie Universität Berlin Sortieralgorithmen Bubble-Sort Insert-Sort Selection-Sort Vergleichsalgorithmen
MehrÜbung Algorithmen I
Übung Algorithmen I 10.5.17 Sascha Witt sascha.witt@kit.edu (Mit Folien von Lukas Barth, Julian Arz, Timo Bingmann, Sebastian Schlag und Christoph Striecks) Roadmap Listen Skip List Hotlist Amortisierte
MehrEinführung in die Informatik I Kapitel II.3: Sortieren
1 Einführung in die Informatik I Kapitel II.3: Sortieren Prof. Dr.-Ing. Marcin Grzegorzek Juniorprofessur für Mustererkennung im Institut für Bildinformatik Department Elektrotechnik und Informatik Fakultät
MehrAlgorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8
ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1
MehrSuchen. lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable
Suchen lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable Welche Nummer hat Herr Meier? Enthält Einträge (Elemente) der Form : Name, Vorname
MehrSortieren und Suchen. Jens Wächtler Hallo Welt! -Seminar LS 2
Sortieren und Suchen Jens Wächtler 17.05.2017 Hallo Welt! -Seminar LS 2 Überblick Sortieren kurze Wiederholung Binäre & Ternäre Suche Binäre Suche in einer Liste Bisektionsverfahren (Nullstellensuche)
MehrÜbungsklausur Algorithmen I
Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer
MehrDas Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
119 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 120 Das Suchproblem Gegeben
MehrDas Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge
MehrDatenbanken. Interne Datenorganisation:
Interne Datenorganisation: Bisher: Konzeptionelle Betrachtungen einer Datenbank aus Sicht der Anwendung: Modellierung, Normalisieren, Sprache zum Einfügen, Ändern, Löschen, Lesen Jetzt: Betrachtung der
MehrInhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85
Inhaltsverzeichnis Vorwort 13 Umfang 14 Einsatz als Unterrichtsmittel 14 Algorithmen mit Praxisbezug 15 Programmiersprache 16 Danksagung 17 Vorwort des Java-Beraters 18 Hinweise zu den Übungen 19 Teil
MehrKlausur Algorithmen und Datenstrukturen
Technische Universität Braunschweig Wintersemester 2014/2015 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II und Red-Black-Trees Dr. Georg Sauthoff 1 AG Praktische Informatik July 1, SoSe 2011 1 gsauthof@techfak.uni-bielefeld.de Suchbäume (Indexdatenstrukturen) Zugriff in O(logn)
MehrInstitut für Programmierung und Reaktive Systeme 7. Mai Programmieren II. 11. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 7. Mai 2018 Programmieren II 11. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
MehrKlausur Algorithmen und Datenstrukturen
Technische Universität Braunschweig Wintersemester 2013/2014 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Stephan Friedrichs Klausur Algorithmen und
MehrMathematik AG. Geschickt gesucht ist halb gefunden: Suchen und Sortieren mit Mathe
Mathematik AG Geschickt gesucht ist halb gefunden: Suchen und Sortieren mit Mathe Habe ich die 7? 4 5 1 3 8 6 1 2 7 JA! Habe ich die 7? 4 5 1 3 8 6 1 2 3 NEIN! Unser Problem JA 4 5 1 3 8 6 1 2 7 NEIN 4
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung
MehrHeapsort. 1. Erstelle aus dem gegebenen Array einen Max-Heap (DownHeap) 2. Tausche erstes und letztes Element des Arrays
Heapsort Beispiel für einen eleganten Algorithmus, der auf einer effizienten Datenstruktur (dem Heap) beruht [Williams, 1964] Daten liegen in einem Array der Länge n vor 1. Erstelle aus dem gegebenen Array
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Sortieren von Feldern (2) Effiziente Sortieralgorithmen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 124 Quicksort Dr. Frank Seifert Vorlesung Datenstrukturen
MehrZiele. Kapitel 10: Komplexität von Algorithmen und Sortierverfahren. Beispiel: Lineare Suche eines Elements in einem Array (1)
Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Ziele Kapitel 10: Komplexität von Algorithmen und Sortierverfahren Prof. Dr. David Sabel Lehr- und Forschungseinheit
MehrSortieralgorithmen. Selection Sort
intuitivster Suchalgorithmus Sortieralgorithmen Selection Sort In jedem Schritt wird das kleinste Element im noch unsortierten Array gesucht und ans Ende des bisher sortierten Teilarrays gehangen 3 1 4
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2018 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Organisatorisches: Keine Vorlesung nächste Woche wegen
MehrÜbung Datenstrukturen. Sortieren
Übung Datenstrukturen Sortieren Aufgabe 1 Gegeben sei nebenstehender Sortieralgorithmus für ein Feld a[] ganzer Zahlen mit N Elementen: a) Um welches Sortierverfahren handelt es sich? b) Geben Sie möglichst
MehrInstitut für Programmierung und Reaktive Systeme 10. Mai Programmieren II. 11. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 10. Mai 2013 Programmieren II 11. Übungsblatt Hinweis: Dieses Übungsblatt enthält die zweite Pflichtaufgabe.
MehrDynamische Datenstrukturen
Dynamische Datenstrukturen B-Bäume größere Datenmengen verwalten Extern speichern Art der Speicherung berücksichtigen sonst kein optimaler Datenzugriff möglich Art der Speicherung großer Datenmengen Magnetplatten
MehrDatenstrukturen Kurzanleitung
Datenstrukturen Kurzanleitung Insertionsort p = (7, 5, 4, 83, 6, 6) n = 6 Start: K ist sortierte Folge. Für i =, 3, 4,..., n: Füge ki in eine sortierte Folge ( k, k, k 3,..., k n ) in der richtigen Position
Mehr5.5 Prioritätswarteschlangen
5.5 Prioritätswarteschlangen LIFO- und FIFO-Warteschlangen entfernen Werte aus der Warteschlange in Abhängigkeit davon, wann sie in diese eingefügt wurden Prioritätswartschlangen interpretieren die Werte
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. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI
MehrThemen. Hashverfahren. Stefan Szalowski Programmierung II Hashverfahren
Themen Hashverfahren Einleitung Bisher: Suchen in logarithmischer Zeit --> Binärsuche Frage: Geht es eventuell noch schneller/effektiver? Finden von Schlüsseln in weniger als logarithmischer Zeit Wichtig
Mehr13. Bäume: effektives Suchen und Sortieren
13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Version: 25. Jan. 2016 Schwerpunkte Aufgabe und Vorteile von Bäumen Sortieren mit Bäumen Ausgabealgorithmen:
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Sortierverfahren 1. Schreibtischtest 2. Stabilität 3. Sortierung spezieller Arrays 4. Untere
Mehr