Datenstrukturen und Algorithmen
|
|
- Julian Gerber
- vor 7 Jahren
- Abrufe
Transkript
1 Datenstrukturen und Algorithmen VO D&A: 1. Einführung 1
2 Organisatorisches VO ( ) & UE ( ) bei beiden extra anmelden, zwei Zeugnisse Vortragende: VO: Robert Legenstein UE: Gernot Griesbacher Homepage: Newsgroup: tu-graz.lv.datenalgo D&A: 1. Einführung 2
3 Ablauf der VO Do. 11:15 12:45 Folien und Hilfsblätter werden online gestellt (Inoffizielles) Skriptum im CopyShop- Infelldgasse erhältlich Homepage: Literatur, Java Applets D&A: 1. Einführung 3
4 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden 5. Suchen in linearen Feldern 6. Bäume D&A: 1. Einführung 4
5 Kapitel 1 Einführung und Grundlagen D&A: 1. Einführung robert.legenstein@igi.tugraz.at 5
6 1. Einführung und Grundlagen Warum Datenstrukturen und Algorithmen? Grundlagen Was ist ein Algorithmus? Was ist eine Datenstruktur? Beispiele: Einfache Sortieralgorithmen InsertionSort Asymptotische Schranken zur Laufzeitanalyse Elementare Datenstrukturen D&A: 1. Einführung 6
7 Warum Datenstrukturen und Algorithmen? D&A ist eine Kernkompetenz jedes Informatikers (Softwareentwicklers, Telematikers, ) Informatik = Computer Science Die Wissenschaft des (automatisierten) Rechnens. Man rechnet mit Algorithmen. Flut an Daten, z.b. Videos im Internet, sollen "effizient" verarbeitet werden. Algorithms are at the heart of every nontrivial computer application [K. Mehlhorn and P. Sanders] Online verfügbar, siehe HP D&A: 1. Einführung robert.legenstein@igi.tugraz.at 7
8 Warum Datenstrukturen und Algorithmen? Algorithmendesign Programmieren Schrittweiser Prozess der Software-Entwicklung (Wasserfall-Modell, Royce 1970]: D&A: 1. Einführung 8
9 Warum Datenstrukturen und Algorithmen? Algorithmendesign Programmieren Analysieren des Problems: was ist gegeben? was ist gesucht? welche Rahmenbedingungen? Abschätzen der grundsätzlichen Machbarkeit. D&A: 1. Einführung 9
10 Warum Datenstrukturen und Algorithmen? Algorithmendesign Programmieren Entwickeln einer Lösungsidee: skizzieren der erforderlichen Schritte dies ist ein kreativer Prozess! aber: wir werden Tools (=Lösungsmethoden) kennenlernen D&A: 1. Einführung 10
11 Warum Datenstrukturen und Algorithmen? Algorithmendesign Programmieren Transformieren der Lösungsidee: in eine algorithmische Form Ausformulieren der Lösungsidee in algorithmischer Form Dies ist noch kein Programm! D&A: 1. Einführung 11
12 Warum Datenstrukturen und Algorithmen? Algorithmendesign & Analyse Wichtige Fragen der Analyse von Algorithmen: Wie schnell ist mein Algorithmus (Programm)? Wie kann ich ihn schneller machen? Wie kann ich beweisen, dass er immer so schnell läuft? Wie kann ich den maximalen Speicherverbrauch abschätzen bzw. reduzieren? Wie kann ich sicher sein dass mein Algorithmus korrekt ist? D&A: 1. Einführung 12
13 Warum Datenstrukturen und Algorithmen? Warum sollten Sie D&A beherrschen? Weil Sie nicht nur programmieren wollen, sondern Probleme algorithmisch lösen. Weil Sie effiziente Lösungen für Probleme suchen. Weil Effiziente Algorithmen sehr mächtig sein können. Das Imperium basiert auf PageRank, einem Algorithmus zur Informationssuche im www. D&A: 1. Einführung 13
14 1. Einführung und Grundlagen Warum Datenstrukturen und Algorithmen? Grundlagen Was ist ein Algorithmus? Was ist eine Datenstruktur? Beispiele: Einfache Sortieralgorithmen InsertionSort Asymptotische Schranken zur Laufzeitanalyse Elementare Datenstrukturen D&A: 1. Einführung 14
15 1. Einführung u. Grundlagen Was ist ein Algorithmus? Addition zweier Dezimalzahlen: D&A: 1. Einführung 15
16 1. Einführung u. Grundlagen Was ist ein Algorithmus? Bsp: Addition zweier n-stelliger Dezimalzahlen c = a + b Idee: Wir summieren die Stellen mit Übertrag Schritt 1: Summiere die niederwertigsten Stellen. Einerstelle des Ergebnisses ist Einerstelle von c. Behalte Zehnerstelle des Ergebnisses als Übertrag. Schritt 2 bis n: Summiere alle weiteren Stellen (i-te Stelle im i-ten Schritt) zusammen mit dem Übertrag Einerstelle des Ergebnisses ist i-te Stelle von c. Behalte Zehnerstelle des Ergebnisses als Übertrag. Schritt n+1: Falls Übertrag vorhanden, stelle ihn an die höchstwertige Stelle von c. D&A: 1. Einführung robert.legenstein@igi.tugraz.at 16
17 1. Einführung u. Grundlagen Definition von Algorithmen Genaue Definition schwierig Ein Algorithmus ist ein Verfahren zur Lösung eines Problems (im Unterschied zu seiner Implementation!) Grobe Definition: Ein Algorithmus ist eine endliche Folge von Anweisungen, die die Lösung eines bestimmten Problems erlaubt. Jede Anweisung hat eine klare Bedeutung und kann mit endlichem Aufwand und in endlicher Zeit ausgeführt werden. D&A: 1. Einführung 17
18 1. Einführung u. Grundlagen Was ist eine Datenstruktur? Bsp: Addition zweier n-stelliger Dezimalzahlen c = a + b Frage: Wie speichern wir die Zahlen a, b, c, wie greifen wir auf die Stellen zu? z.b.: Speichere a, b, c, jeweils in einem linearen Feld (Array) A, B, C, wobei A[i] die i-te Stelle der Zahl a ist A[1] A[2] A[3]. A[n-1] A[n] a = D&A: 1. Einführung robert.legenstein@igi.tugraz.at 18
19 Definition von Datenstrukturen Definition: Eine Datenstruktur ist eine bestimmte Art Daten zu verwalten und zu verknüpfen, damit man in geeigneter Art und Weise auf sie zugreifen und diese manipulieren kann. Datenstrukturen sind immer mit speziellen Operationen verbunden (z.b.: i-tes Element, Einfügen, Entfernen, Maximum, Nachfolger, ) Diese Operationen sind wiederum durch Algorithmen implementiert. D&A: 1. Einführung robert.legenstein@igi.tugraz.at 19
20 Interaktion Datenstrukturen Algorithmen
21 Datenstrukturen und Algorithmen können nicht getrennt voneinander betrachtet werden Algorithmen und Datenstrukturen gehen Hand in Hand Ein Algorithmus (Methode, Verfahren, Rezept) nimmt bestimmte Daten als Input und transformiert diese nach festen Regeln in einen Output Dabei greift der Algorithmus auf Daten zu, die in einer Datenstruktur organisiert sind D&A: 1. Einführung 21
22 1. Einführung u. Grundlagen Formulierung in Pseudocode Bsp: Addition zweier n-stelliger Dezimalzahlen c = a + b Idee: Wir summieren die Stellen mit Übertrag Sum(A,B): // Input: A: Array[1..n], B: Array[1..n], kodieren a,b // Output: C: Array[1..n+1], kodiert c = a+b 1: carry 0 2: FOR i 1 TO n 3: (res, carry) = FullAdd(A[i],B[i],carry) 4: C[i] res 5: C[n+1] carry 6: RETURN C D&A: 1. Einführung robert.legenstein@igi.tugraz.at 22
23 Analyse von Algorithmen Wir wollen Algorithmen und Datenstrukturen systematisch analysieren und vergleichen. Was ist ein guter Algorithmus? Er muss korrekt sein, d.h. das richtige Ergebnis für alle möglichen Inputinstanzen liefern. Er muss schnell sein. Er soll wenig Ressourcen (Zeit, Speicher, Bandbreite, CPUs, logische Gatter, ) benötigen. D&A: 1. Einführung robert.legenstein@igi.tugraz.at 23
24 1. Einführung u. Grundlagen Wie schnell ist unser Algorithmus? Bsp: Addition zweier n-stelliger Dezimalzahlen c = a + b Sum(A,B): // Input: A: Array[1..n], B: Array[1..n], kodieren a,b // Output: C: Array[1..n+1], kodiert c = a+b 1: carry 0 2: FOR i 1 TO n 3: (res, carry) = FullAdd(A[i],B[i],carry) 4: C[i] res 5: C[n+1] carry 6: RETURN C T(n) = d+k n (d,k sind Konstanten) D&A: 1. Einführung robert.legenstein@igi.tugraz.at 24
25 Wir wollen wissen wie viel Zeit (allg.: Ressourcen) der Algorithmus in Abhängigkeit der Inputgröße benötigt. Abstraktion des Algorithmus (und der Datenstruktur) (Unabhängig von der eigentlichen Implementierung Sprache, OS, Protokolle, Hardware etc.) Mathematische Werkzeuge: O-Notation, Kombinatorik, Wahrscheinlichkeitstheorie, etc. D&A: 1. Einführung 25
26 Food For Thought Gibt es für jedes mathematisch beschreibbare Problem einen korrekten Algorithmus? Nein: Halteproblem [Alan Turing, 1936] Gibt es für jedes berechenbare Problem einen effizienten Algorithmus? Nein: Nichthandhabbare (intractable) Probleme NP-Vollständigkeit [Cook, 1972] D&A: 1. Einführung 26
27 1. Einführung und Grundlagen Warum Datenstrukturen und Algorithmen? Grundlagen Was ist ein Algorithmus? Was ist eine Datenstruktur? Beispiele: Einfache Sortieralgorithmen InsertionSort Asymptotische Schranken zur Laufzeitanalyse Elementare Datenstrukturen D&A: 1. Einführung 27
28 1 Annahmen Sortieren von Zahlenfolgen: Input: eine Sequenz von n Zahlen a, a2,, 1 Output: eine Permutation der Inputsequenz sodass a a 1 2 a n a n a, a2,, 1 a n Instanz des Sortierproblems: Input: 31,41,59,26,41,58 Output: 26,31,41,41,58, 59 Ein Algorithmus ist korrekt, wenn er für jede Instanz des Inputs einen korrekten Output liefert. D&A: 1. Einführung robert.legenstein@igi.tugraz.at 28
29 2 Formulierung (Idee) Sortieren durch Einfügen (InsertionSort) D&A: 1. Einführung 29
30 Formulierung: InsertionSort Arbeitet in n-1 (= Anzahl der Zahlen-1) Durchgängen Nach dem i-ten Durchgang sind die Zahlen 1..i+1 sortiert. Im i-ten Durchgang wird die (i+1)-te Zahl von links betrachtet und solange nach links verschoben bis sie in die Sortierung passt D&A: 1. Einführung 30
31 3 Pseudo Code Pseudo Code ist präziser als verbale Formulierungen allerdings nicht so präzise wie eine spezielle Implementierung (z.b. in Java oder C++). Viele Definitionen existieren. Wir verwenden eine Definition angelehnt an Java Code. Kommentare //Mein Kommentar Einrückungen Dienen zur Strukturierung der Anweisungen D&A: 1. Einführung 31
32 3 Pseudo Code Schleifen FOR <variable-increment-definition> <actions> REPEAT <actions> UNTIL <condition> WHILE <condition> DO <actions> D&A: 1. Einführung 32
33 3 Pseudo Code Bedingte Anweisung IF <condition> THEN <true-actions> [ELSE <false-actions>] Ein- und Ausgabe input <variable> (brauchen wir nicht) output <variable text> print <variable text> D&A: 1. Einführung 33
34 3 Pseudo Code Algorithmen Deklaration Algorithm name(param1, param2,...) : //Input: Beschreibung der Eingabevariablen //Output: Beschreibung der Ausgabevariablen... weitere Anweisungen... Rückgabewert: RETURN value D&A: 1. Einführung robert.legenstein@igi.tugraz.at 34
35 Lösungsvorschlag: InsertionSort Pseudocode: Input: lineares Feld A[1..n] Output: aufsteigend sortiertes lineares Feld A[1..n] InsertionSort(A, n) 1: FOR i = 2 TO n 2: h = A[i] 3: j = i - 1 4: WHILE j>0 AND h<a[j] DO 5: A[j+1] = A[j] 6: j = j - 1 7: A[j+1] = h 8: RETURN A D&A: 1. Einführung robert.legenstein@igi.tugraz.at 35
36 Zusammenfassung Design und Analyse von Algorithmen -> zentrales Thema in der Informatik Algorithmen und Datenstrukturen können nicht getrennt voneinander behandelt werden, Definitionen. Wir wollen wissen wie viel Zeit (allg.: Ressourcen) der Algorithmus in Abhängigkeit der Inputgröße benötigt. Analyse-Vorgehensweise: Annahme->Formulierung ->Pseudocode->Analyse D&A: 1. Einführung 36
37 Danke für Ihre Aufmerksamkeit D&A: 1. Einführung 37
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen VO 708.031 Um was geht es? Datenstrukturen Algorithmen Algorithmus Versuch einer Erklärung: Ein Algorithmus nimmt bestimmte Daten als Input und transformiert diese nach festen
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 03.10.2013 elmar.rueckert@igi.tugraz.at 1 Organisatorisches VO (708.031) & UE (708.032) bei beiden extra anmelden, zwei Zeugnisse Vortragende: VO: Elmar Rückert
MehrAlgorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems
4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um
MehrAlgorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems
4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um
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
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen
Mehr2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.
2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
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
MehrKapitel 1: Informationsverarbeitung durch Programme
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2009 Kapitel 1: Informationsverarbeitung
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Große Übung #1 Christian Rieck, Arne Schmidt 26.10.2017 Organisatorisches Christian Rieck, Arne Schmidt Große Übung 2 Homepage Aktuelle Informationen, Hausaufgaben, Slides
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
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
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 Große Übung #1 Christian Rieck, Arne Schmidt 25.10.2018 Organisatorisches Christian Rieck, Arne Schmidt Große Übung #1 - AuD 2 Homepage Aktuelle Informationen, Hausaufgaben,
MehrGrundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 robert.legenstein@igi.tugraz.at 1 Kapitel 2 Algorithmische robert.legenstein@igi.tugraz.at 2 2. Algorithmische 1) Iterative Algorithmen 2) Rekursive Algorithmen
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen
MehrIdeen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn
Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn November 2016 Algorithmen und Programme Algorithmus = Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man
MehrCopyright, Page 1 of 7 Heapsort
www.mathematik-netz.de Copyright, Page 1 of 7 Heapsort Alle grundlegenden, allgemeinen Sortierverfahren benötigen O(n 2 ) Zeit für das Sortieren von n Schlüsseln. Die kritischen Operationen, d.h. die Auswahl
MehrKapitel 1 Einleitung. Definition: Algorithmus nach M. Broy: aus: Informatik: Eine grundlegende Einführung, Band 1, Springer-Verlag, Berlin
Kapitel 1 Einleitung 1.1. Begriff des Algorithmus Eine der ältesten Beschreibungstechniken für Abläufe: Benannt nach dem Mathematiker Al-Khwarizmi (ca. 780...840), der am Hof der Kalifen von Bagdad wirkte.
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 01/13 6. Vorlesung Prioritäten setzen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Guten Morgen! Tipps für unseren ersten Test am 0. November: Lesen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge
MehrKap. 3 Sortieren. 7. VO DAP2 SS Mai Vorlesung am Do 7.5. entfällt wegen FVV um 14 Uhr HeapSort ff 3.1.
Kap. 3 Sortieren 3.1.5 HeapSort ff 3.1.6 Priority Queues Vorlesung am Do 7.5. entfällt wegen FVV um 14 Uhr Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 7.
MehrIdeen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn
Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn Algorithmen und Programme Algorithmus Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man umgangssprachlich,
MehrINSERTION-SORT: Ja, Es wird immer das erste, kleinste Element an die neue Liste angehängt.
Aufgabe 1 INSERTION-SORT: Ja, Es wird immer das erste, kleinste Element an die neue Liste angehängt. QUICK-SORT: Hängt davon ab ob PARTITION stabil ist. MERGE-SORT: Ja, Splitten, sowie Mergen ist stabil.
MehrOrganisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Tutorübungen
Organisatorisches Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2018 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Vorlesung online: Webseite: http://campar.in.tum.de/chair/teachingss18aud
MehrAlgorithmen und Datenstrukturen. Organisatorisches. Christian Komusiewicz Ernst-Abbe-Platz 2, R3315
Algorithmen und Datenstrukturen Christian Komusiewicz Ernst-Abbe-Platz 2, R3315 christian.komusiewicz@uni-jena.de Friedrich-Schiller-Universität Jena Institut für Informatik http://users.fmi.uni-jena.de/
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
MehrKlausur Algorithmen und Datenstrukturen I WS 05/06
FH Braunschweig/Wolfenbüttel Fachbereich Informatik Prof. Dr. R. Rüdiger Wolfenbüttel, den 10. Januar 2006 Klausur Algorithmen und Datenstrukturen I WS 05/06 Hinweise: Es sind beliebige schriftliche Unterlagen
Mehr1 Einführung: Algorithmen. Algorithmen und Datenstrukturen WS 2012/13. Pro f. Dr. Sán do r Fe k e te
1 Einführung: Algorithmen Algorithmen und Datenstrukturen WS 2012/13 Pro f. Dr. Sán do r Fe k e te Literatur 1.1 Was ist ein Algorithmus? Ein Algorithmus ist eine aus endlich vielen Schritten bestehende
MehrTechnische Universität München SoSe 2018 Fakultät für Informatik, I Mai 2018 Dr. Stefanie Demirci
Name: Vorname: Matr. Nr.: Technische Universität München SoSe 2018 Fakultät für Informatik, I-16 9. Mai 2018 Dr. Stefanie Demirci Probeklausur zu Algorithmen und Datenstrukturen Allgemeine Hinweise Die
MehrAbschnitt 7: Komplexität von imperativen Programmen
Abschnitt 7: Komplexität von imperativen Programmen 7. Komplexität von imperativen Programmen 7 Komplexität von imperativen Programmen Einf. Progr. (WS 08/09) 399 Ressourcenbedarf von Algorithmen Algorithmen
MehrKapitel 1: Informationsverarbeitung durch Programme
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2008 Kapitel 1: Informationsverarbeitung
MehrElementare Sortierverfahren
Algorithmen und Datenstrukturen I Elementare Sortierverfahren Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 18:16 Inhaltsverzeichnis Sortieren.......................................
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
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
MehrInformatik II Sortieren
lausthal Sortieralgorithmen Informatik II Sortieren Preprocessing fürs Suchen sind für kommerzielle Anwendungen häufig die Programmteile, die die meiste Rechenzeit verbrauchen viele raffinierte Methoden
MehrInformatik II Sortieren
lausthal Informatik II Sortieren. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Sortieralgorithmen Preprocessing fürs Suchen sind für kommerzielle Anwendungen häufig die Programmteile, die
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Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft
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
Mehr1. Einführung. Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen?
1. Einführung Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen? Wie beschreiben wir Algorithmen? Nach welchen Kriterien
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
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Fehlerarten. Validation. Wintersemester 2012/13. Dr. Tobias Lasser
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 01/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 1 Einführung Mathematische Grundlagen
MehrÜbung zur Vorlesung Berechenbarkeit und Komplexität
RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Übung 1 Stephan Friedrichs Technische Universität Braunschweig, IBR 31. Oktober 2013 Programm für Heute 1 Organisatorisches 2 Übung Probleme und Instanzen Algorithmen (Pseudocode,
Mehr3. Übungsblatt zu Algorithmen I im SoSe 2017
Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 018/19 6. Vorlesung Prioritäten setzen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I - 4 Heute: Wir bauen eine Datenstruktur Datenstruktur: Konzept,
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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare
MehrIdeen und Konzepte der Informatik
Ideen und Konzepte der Informatik Programme und Algorithmen Antonios Antoniadis 23. Oktober 2017 Algorithmen und Programme Algorithmus Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert
MehrObjektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III
Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Text: Hinnerk van Bruinehsen - Grafiken: Jens Fischer powered by SDS.mint SoSe 2011 1 Teil
MehrGrundlagen der Programmierung (Vorlesung 24)
Grundlagen der Programmierung (Vorlesung 24) Ralf Möller, FH-Wedel Vorige Vorlesung Anwendung im Bereich Compilerbau Inhalt dieser Vorlesung Turing-Maschinen Berechenbarkeitstheorie, Halteproblem Lernziele
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu
MehrGrundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010
MehrKapitel 3: Untere Schranken für algorithmische Probleme Gliederung
Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte
MehrKapitel 1: Informationsverarbeitung durch Programme
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2018 Kapitel 1: Informationsverarbeitung
MehrEinführung in die Informatik Turing Machines
Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard Cyrill Stachniss 1/14 Motivation und Einleitung Bisher haben wir verschiedene
Mehr1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.
Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten
MehrProgrammieren und Problemlösen
Dennis Komm Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 27. Februar 2019 Komplexität von Algorithmen Aufgabe Primzahltest Schreibe ein Programm, das eine ganze Zahl x als Eingabe
MehrAbgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 5 Asymptotische Laufzeitkomplexität Definition Regeln Beispiele Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger
MehrEinführung in die Informatik Turing Machines
Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard 1 Motivation und Einleitung Bisher haben wir verschiedene Programmiersprachen
Mehr8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], n = länge(a) BUILD-MAX-HEAP (A)
Stand der Vorlesung: Datenstruktur Heap: fast vollständiger Binärbaum MaxHeap: sortierter Heap, größtes Element an Wurzel Sortierverfahren: HeapSort: Sortieren eines Feldes A[1.. n] Idee: in place: Feld
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Tanya Braun (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge Bachelor
MehrTechnische Universität München
Stand der Vorlesung: Datenstruktur Heap: fast vollständiger Binärbaum MaxHeap: sortierter Heap, größtes Element an Wurzel Sortierverfahren: HeapSort: Sortieren eines Feldes A[1.. n] Idee: in place: Feld
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Die Landau-Notation (Wiederholung und Vertiefung) 2. Vorbereitung Aufgabenblatt 1, Aufgabe 1
Mehr14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften
Heapsort, Quicksort, Mergesort 14. Sortieren II 14.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 397 398 Heapsort [Max-]Heap 7 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum
MehrBeispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5
Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen
MehrPraktikum Algorithmische Anwendungen WS 2006/07 Sortieren in linearer Laufzeit
Praktikum Algorithmische Anwendungen WS 2006/07 Sortieren in linearer Laufzeit Team A blau Martin Herfurth 11043831 Markus Wagner 11043447 5. Februar 2007 1 1 Untere Schranke für Vergleichsbasierte Algorithmen
MehrIdeen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn
Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn 26. Oktober 2015 Programme und Algorithmen Programmiersprache = Kunstsprache mit genau definierter Syntax (was ist ein zulässiger
MehrStand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften
MehrLösungsvorschlag Serie 2 Rekursion
(/) Lösungsvorschlag Serie Rekursion. Algorithmen-Paradigmen Es gibt verschiedene Algorithmen-Paradigmen, also grundsätzliche Arten, wie man einen Algorithmus formulieren kann. Im funktionalen Paradigma
MehrHeapsort, Quicksort, Mergesort. 8. Sortieren II
209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] Heapsort 211 Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:
MehrInformatik I Komplexität von Algorithmen
Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 2 (23.4.2018) Sortieren II, Asymptotische Analyse, O-Notation Algorithmen und Komplexität Laufzeit Zeitmessung SelectionSort n 2 Laufzeit/n
MehrDefinition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:
HeapSort Allgemeines Sortieralgorithmen gehören zu den am häufigsten angewendeten Algorithmen in der Datenverarbeitung. Man hatte daher bereits früh ein großes Interesse an der Entwicklung möglichst effizienter
MehrCounting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit
Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält
MehrWillkommen zur Vorlesung. Algorithmen und Datenstrukturen
Willkommen zur Vorlesung Algorithmen und Datenstrukturen Mein Name: Andreas Berndt Zum Dozenten Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen Derzeitige Sprachen:
Mehr1 Algorithmische Grundlagen
1 Algorithmische Grundlagen Klocke/17.03.2003 1.1 1.1 Begriffsklärung Fragen Begriffsklärungen Abstraktionsebenen für Algorithmen und Datenstrukturen Algorithmus Qualität von Algorithmen Klocke/17.03.2003
MehrAufgabe (Schreibtischtest, lexikographische Ordnung)
Aufgabe (Schreibtischtest, lexikographische Ordnung) Führen Sie einen Schreibtischtest für den Algorithmus Bubblesort aus der VL für die folgenden Eingabe-Arrays durch. Geben Sie das Array S nach jedem
MehrDatenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik
5. Datenstrukturen Motivation Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik Eine Datenstruktur speichert gegebene Daten und stellt auf diesen bestimmte Operationen
MehrAlgorithmen und Datenstrukturen Kapitel 1 Algorithmen & Algorithmenanalyse
Algorithmen und Datenstrukturen Kapitel 1 Algorithmen & Frank Heitmann heitmann@informatik.uni-hamburg.de 14. Oktober 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/48 Der Sprung ins Wasser...
MehrTuring-Maschinen: Ein abstrakes Maschinenmodell
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt, eine Elementaroperation ist maschinell ausführbar? Was verstehen
Mehr