Datenstrukturen und Algorithmen
|
|
|
- Julian Gerber
- vor 9 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 03.10.2013 [email protected] 1 Organisatorisches VO (708.031) & UE (708.032) bei beiden extra anmelden, zwei Zeugnisse Vortragende: VO: Elmar Rückert
Algorithmen 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
Algorithmen 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
Datenstrukturen und Algorithmen. 7. Suchen in linearen Feldern
Datenstrukturen und Algorithmen 7. Suchen in linearen Feldern VO 708.031 Suchen in linearen Feldern [email protected] 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische
Algorithmen 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
2. 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
Programm 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
Algorithmen 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
Algorithmen 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
Algorithmen 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
Algorithmen 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
Kapitel 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
Kapitel 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
Algorithmen 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
Ü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
2. 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
Abschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
Algorithmen 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,
Grundlagen: 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
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 [email protected] 1 Kapitel 2 Algorithmische [email protected] 2 2. Algorithmische 1) Iterative Algorithmen 2) Rekursive Algorithmen
Algorithmen 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
Ideen 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
Kapitel 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.
Ü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
Ü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
Algorithmen 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
Algorithmen 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
Ideen 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,
Organisatorisches. 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
Algorithmen und Datenstrukturen. Organisatorisches. Christian Komusiewicz Ernst-Abbe-Platz 2, R3315
Algorithmen und Datenstrukturen Christian Komusiewicz Ernst-Abbe-Platz 2, R3315 [email protected] Friedrich-Schiller-Universität Jena Institut für Informatik http://users.fmi.uni-jena.de/
Algorithmen 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
1 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
Abschnitt 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
Elementare 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.......................................
Abschnitt 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
Komplexitä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
Informatik 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
Ü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
Ü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
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] 4. Sortierverfahren Elementare Sortierverfahren - Sortieren durch
1. 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
Kapitel 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
Ü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
Algorithmen 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,
3. Ü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
3.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
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens [email protected] Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare
Ideen 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
Objektorientierte 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
Grundlagen 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
Algorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik [email protected] Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu
Grundlagen: 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
Kapitel 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
Kapitel 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
Einfü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
1 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
Programmieren 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
Abgabe: (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,
UE 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
Einfü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
8.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
Algorithmen 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
Ü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
14. 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
Beispiellö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
Ideen 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
Stand 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
Lö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
Definition 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
Counting - 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
Willkommen 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:
1 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
Aufgabe (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
Datenstrukturen 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
Turing-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
