Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.
|
|
- Karoline Dieter
- vor 7 Jahren
- Abrufe
Transkript
1 Übersicht Datenstrukturen und Vorlesung 1: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 datenstrukturen-und-algorithmen/ Diese Präsentation verwendet in Teilen Folien von Joost-Pieter Katoen Datenstrukturen April 2014 Prof. Dr. Erika Ábrahám Datenstrukturen und 1/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 2/50 Literatur Algorithmus: Wikipedia Definition Die Vorlesung orientiert sich im Wesentlichen an diesem Buch: Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, Clifford Stein: - Eine R. Oldenbourg Verlag, 2. oder 3. Auflage. Prof. Dr. Erika Ábrahám Datenstrukturen und 3/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 4/50
2 Übersicht Probleminstanzen und Lösungen 1 Problem Probleminstanzen spezifizieren zu lösende Aufgaben. Beispiel (Probleminstanzen) 2 3 Datenstrukturen 4 Probleminstanz Bestimme das Datum des Ostersonntags im Jahr 2014 Bestimme den kürzesten Weg von Aachen nach Budapest Bestimme den größten gemeinsamen Teiler von 12 und 15 Lösung km 3 Prof. Dr. Erika Ábrahám Datenstrukturen und 5/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 6/50 Probleme (auch genannt Problemklassen) Ein Problem ist eine Menge von Probleminstanzen. Wir spezifizieren Probleme als parametrisierte Probleminstanzen. Jeder konkrete Parameterwert spezifiziert eine Instanz des Problems. Beispiel (Probleminstanzen und Probleme) Probleminstanz Bestimme das Datum des Ostersonntags im Jahr 2014 Bestimme den kürzesten Weg von Aachen nach Budapest Bestimme den größten gemeinsamen Teiler von 12 und 15 Problem Bestimme das Datum des Ostersonntags im Jahr y Bestimme den kürzesten Weg von Ort A nach Ort B Bestimme den größten gemeinsamen Teiler der natürlichen Zahlen a und b Formalisierung von Problemen Probleme Ein Problem is gegeben durch eine Eingabe und eine Ausgabe: Eingabe: Ausgabe: Eine Liste von typisierten Eingabevariablen T x (auch genannt Parameter, mit Typ T und Name x) und eine Vorbedingung ϕ( x), die für jede Instanz des Problems gilt. Eine Liste von typisierten Ausgabevariablen T y und eine Nachbedingung ψ( x, y), die die gesuchten Lösungen des Problems in Abhängigkeit von den Eingabe- und Ausgabevariablen eindeutig beschreibt. Ein Instanz eines Problems ist spezifiziert durch eine Belegung der Eingabevariablen, die die Vorbedingung erfüllt. Eine Lösung einer Probleminstanz ist spezifiziert durch eine Belegung der Ausgabevariablen, die die Nachbedingung erfüllt. Prof. Dr. Erika Ábrahám Datenstrukturen und 7/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 8/50
3 Beispiel Problem: Ostersonntag Beispiel Problem: Sortieren Beispiel Eingabe: Ausgabe: Eingabevariable: Jahr y Vorbedingung: y 0 Ausgabevariablen: Monat m, Tag d Nachbedingung: Der Ostersonntag fällt im Jahr y auf den Tag d im Monat m. Beispiel Eingabe: Eine Folge a 1, a 2,..., a n von n 0 natürlichen Zahlen a i N, 1 i n. Ausgabe: Eine Permutation (Umordnung) b 1, b 2,..., b n der Eingabefolge mit b 1 b 2... b n. Prof. Dr. Erika Ábrahám Datenstrukturen und 9/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 10/50 Beispiel Problem: Kürzester Weg Beispiel Problem: Kürzester Weg Prof. Dr. Erika Ábrahám Datenstrukturen und 11/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 12/50
4 Beispiel Problem: Kürzester Weg Beispiel (Kürzester Weg) Eingabe: 1. Eine Straßenkarte, auf der für jedes Straßensegment zwischen zwei benachbarten Kreuzungen die Segmentlänge eingezeichnet ist, 2. eine Startkreuzung s, und 3. eine Zielkreuzung z. Ausgabe: Ein kürzester Weg von s nach z. Prof. Dr. Erika Ábrahám Datenstrukturen und 13/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 14/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 15/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 16/50
5 Prof. Dr. Erika Ábrahám Datenstrukturen und 17/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 18/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 19/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 20/50
6 Prof. Dr. Erika Ábrahám Datenstrukturen und 21/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 22/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 23/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 24/50
7 Übersicht Beispiel (maximale Flüsse) Eingabe: 1. Eine Straßenkarte, auf der die Kapazität der Straßen eingezeichnet ist, 2. eine Quelle, und 3. eine Senke. Ausgabe: Die maximale Rate, mit der Material (= Zuschauer) von der Quelle bis zur Senke (= Stadion) transportiert werden kann, ohne die Kapazitätsbeschränkungen der Straßen zu verletzen Datenstrukturen 4 Prof. Dr. Erika Ábrahám Datenstrukturen und 25/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 26/50 Algorithmus: Wikipedia Definition Algorithmus Ein Algorithmus ist eine genau definierte Handlungsvorschrift zur Lösung eines Problems. Al-Chwarizmi (geb. um 780 in Bagdad): Von seinem Werk über das Rechnen mit Dezimalzahlen leitet sich der Begriff Algorithmus ab. Prof. Dr. Erika Ábrahám Datenstrukturen und 27/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 28/50
8 Was sind? Beispiel Algorithmus: Lineare Suche Beispiel Eingabe: Instanz p des Problems P Problem: Suchen eines Elementes in einer Liste Eingabe: Array E mit n Einträgen, sowie das gesuchte Element K. Ausgabe: Ist K in E enthalten? Algorithmus für Problem P Ausgabe: Lösung von p Algorithmus: Lineare Suche 1 bool linsearch(int E[], int n, int K) { 2 for (int index = 0; index < n; index ++) { 3 if (E[index] == K) { 4 return true; // gefunden 5 } 6 } 7 return false; // nicht gefunden 8 } Prof. Dr. Erika Ábrahám Datenstrukturen und 29/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 30/50 Datenstrukturen Übersicht Beispiel () Lineare und binäre Suche, Quicksort, Heapsort, Graphalgorithmen. Kernpunkte Korrektheit: Jede Ausgabe ist korrekt (d.h., die Ausgabe ist eine Lösung für die Eingabe). Vollständigkeit: Bei jeder Eingabe stoppt der Algorithmus nach endlich vielen Schritten. Eleganz Effizienz: Wieviel Zeit und Speicherplatz wird benötigt? Datenstrukturen 4 Die hängt oft von den verwenden Datenstrukturen ab. Prof. Dr. Erika Ábrahám Datenstrukturen und 31/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 32/50
9 Datenstrukturen Datenstrukturen Übersicht Datenstruktur Ein mathematisches Objekt zur Speicherung und Organisation von Daten. Man spricht von einer Struktur, da die Daten in einer bestimmten Art und Weise angeordnet und verknüpft werden, um den Zugriff auf sie und ihre Verwaltung geeignet und effizient zu ermöglichen. Beispiele (Datenstrukturen) Array, Baum, Kellerspeicher (stack), verkettete Liste, Warteschlange (queue), Heap, Hashtabelle Datenstrukturen 4 Prof. Dr. Erika Ábrahám Datenstrukturen und 33/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 34/50 Berechenbarkeit Eine in der Theoretischen Informatik zentrale Frage ist: Gegeben ein Problem, gibt es einen Algorithmus der jede Instanz des Problems in endlicher Zeit lösen kann? David Hilbert ( ) war einer der bedeutendsten Mathematiker der Neuzeit. 1900: Liste von 23 ungelösten mathematischen Problemen Zwei der Probleme: Beweis der Vollständigkeit und Widerspruchsfreiheit der Axiome der Arithmetik (Rechnen mit natürlichen Zahlen) Prof. Dr. Erika Ábrahám Datenstrukturen und 35/50 Kurt Gödel ( ) bewies 1931, dass in der Arithmetik unentscheidbare Probleme gibt. Alan Turing ( ) kam 1936 beim eng verwandten Halteproblem von Automaten auf ein ähnliches Ergebnis. Wir werden uns in dieser Vorlesung nur mit entscheidbaren (und lösbaren) Problemen beschäftigen. Prof. Dr. Erika Ábrahám Datenstrukturen und 36/50
10 Kriterien Wichtige Kriterien sind (für eine bestimmte Eingabe): Ziel die benötigte Zeit, der benötigte Platz. Zeitkomplexität Platzkomplexität Beurteilung der unabhängig von dem verwendeten Computer, Programmiersprache, usw. Beispiel Algorithmus: Lineare Suche 1 bool linsearch(int E[], int n, int K) { 2 for (int index = 0; index < n; index ++) { 3 if (E[index] == K) { 4 return true; // gefunden 5 } 6 } 7 return false; // nicht gefunden 8 } Elementare Operationen Die Analyse hängt von der Wahl der elementaren Operationen ab, etwa: Vergleich zweier Zahlen beim Sortieren eines Arrays von Zahlen. Multiplikation zweier Fließkommazahlen bei Matrixmultiplikationen. Anzahl der elementaren Operationen sollte eine gute Abschätzung für die Anzahl der Gesamtoperationen sein. Prof. Dr. Erika Ábrahám Datenstrukturen und 37/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 38/50 Beispiel Worst-, Best- und Average-Case Laufzeit Laufzeit Worst-Case Laufzeit W (n) Average-Case Laufzeit A(n) Einige hilfreiche Begriffe D n = Menge aller Eingaben der Länge n T (I) = für Eingabe I benötigte Anzahl elementarer Operationen Pr(I) = Wahrscheinlichkeit, dass Eingabe I auftritt Eingabelänge n Best-Case Laufzeit B(n) Woher kennen wir: T (I)? Durch Analyse des fraglichen Algorithmus. Pr(I)? Erfahrung, Vermutung (z. B. alle Eingaben treten mit gleicher Wahrscheinlichkeit auf ). Prof. Dr. Erika Ábrahám Datenstrukturen und 39/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 40/50
11 Worst-, Best- und Average-Case Laufzeit Worst-, Best- und Average-Case Laufzeit Worst-Case Laufzeit Die Worst-Case Laufzeit von A ist die von A maximal benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n: Best-Case Laufzeit W (n) = max{ T (I) I D n }. Die Best-Case Laufzeit von A ist die von A minimal benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n: Average-Case Laufzeit Die Average-Case Laufzeit von A ist die von A durchschnittlich benötigte Anzahl elementarer Operationen auf einer beliebigen Eingabe der Länge n: A(n) = I D n Pr(I) T (I) B(n) = min{ T (I) I D n }. Prof. Dr. Erika Ábrahám Datenstrukturen und 41/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 42/50 Beispiel Zeitkomplexität: Array Lesezugriff Beispiel: Lineare Suche 1 int element(int E[], int i) { 2 return E[i]; Annahme Elementare Operation: Arrayzugriff (Leseoperation). Laufzeiten W (n) = 1 B(n) = 1 A(n) = 1 Laufzeit ist konstant, d.h., unabhängig von der Eingabelänge. 1 bool linsearch(int E[], int n, int K) { 2 for (int index = 0; index < n; index ++) { 3 if (E[index] == K) { 4 return true; // gefunden 5 } 6 } 7 return false; // nicht gefunden 8 } Annahmen Elementare Operation: Vergleich einer ganzen Zahl K mit Element E[index]. Integer Domäne: N Werte. Jeder Eingabe ist gleich wahrscheinlich. Prof. Dr. Erika Ábrahám Datenstrukturen und 43/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 44/50
12 Beispiel: Lineare Suche 1 bool linsearch(int E[], int n, int K) { 2 for (int index = 0; index < n; index ++) { 3 if (E[index] == K) { 4 return true; // gefunden 5 } 6 } 7 return false; // nicht gefunden 8 } Worst-Case und Best-Case Laufzeit W (n) = n, da n Vergleiche notwendig sind, falls K nicht in E vorkommt (oder wenn K == E[n]). B(n) = 1 für n > 0, da ein Vergleich ausreicht, wenn K gleich E[1] ist. Worst-Case Laufzeit wächst linear mit der Eingabelänge. Beispiel: Lineare Suche Fall Operationen Wahrscheinlichkeit E[0] = K d 0 = 1 p 0 = Nn 1 N n E[0] K E[1] = K d 1 = 2 p 1 = N 1 N 1 N = 1 N E[0... 1] K E[2] = K d 2 = 3 p 2 = ( N 1 N )2 1 N E[0... i 1] K E[i] = K d i = i + 1 p i = ( N 1 N )i 1 N E[0... n 1] K d n = n p n = ( N 1 N )n Average-Case Laufzeit A(n) = n i=0 p i d i = ( n 1 i=0 ( N 1 N ) ) i i+1 N ( ) n + N 1 N n Prof. Dr. Erika Ábrahám Datenstrukturen und 45/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 46/50 Beispiel: Suche nach gleichen Elementen 1 bool equalsearch(int E[], int n) { 2 for (int i = 0; i < n; i ++) 3 for (int j = 0; j < n; j ++) { 4 if (i!= j && E[i] == E[j]) { 5 return true; // Paar gefunden 6 } 7 } 8 return false; // Paar nicht gefunden 9 } Annahme Elementare Operation: Vergleich zweier Array-Elemente. Laufzeiten W (n) = n(n 1) B(n) = 1 (für n > 0) Typische Laufzeiten Anzahl der elementaren Operationen bildet die Basis zur Bestimmung der Wachstumsrate der Zeitkomplexität bei immer längeren/größeren Eingaben. Beispiel Typische Laufzeiten (bis auf einen konstanten Faktor) für Eingabelänge n: 1 konstant log n logarithmisch n linear n log n n-log-n n 2 quadratisch n 3 kubisch n a polynomiell 2 n exponentiell Worst-Case Laufzeit wächst quadratisch mit der Eingabelänge. Prof. Dr. Erika Ábrahám Datenstrukturen und 47/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 48/50
13 Konstante Faktoren Schnellere Computer... Sei N die größte Eingabelänge, die in fester Zeit gelöst werden kann. Technologie führt nur zu Verbesserung um einen konstanten Faktor: Beispiel Selbst ein Supercomputer kann einen schlechten Algorithmus nicht retten: Für genügend große Eingaben gewinnt immer der schnellere Algorithmus auf dem langsameren Computer. Frage Wie verhält sich N, wenn wir einen K-mal schnelleren Rechner verwenden? #Operationen benötigt für Eingabe der Länge n Größte lösbare Eingabelänge log n n K N n 2 K N 2 n N + log K N K Prof. Dr. Erika Ábrahám Datenstrukturen und 49/50 Prof. Dr. Erika Ábrahám Datenstrukturen und 50/50
Datenstrukturen und Algorithmen
Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/54 Datenstrukturen und Algorithmen Vorlesung 1: Algorithmische Komplexität Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification
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:
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/
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:
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:
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
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
MehrDatenstrukturen und Algorithmen
Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group
MehrAlgorithmen und Datenstrukturen I. Grundlagen. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Algorithmen und Datenstrukturen I Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 18:16 Inhaltsverzeichnis Algorithmus..................................... 2 Problem
MehrAlgorithmen und Datenstrukturen 1 Kapitel 5
Algorithmen und Datenstrukturen 1 Kapitel 5 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 Kapitel 5: Effizienz von Algorithmen 5.1 Vorüberlegungen Nicht
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
MehrOrdnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1)
für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Tutoriumslösung - Übung (Abgabe 9.04.05) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Asymptotische Komplexität):
MehrAlgorithmen und Datenstrukturen I Grundlagen
Algorithmen und Datenstrukturen I Grundlagen Prof. Dr. Oliver Braun Letzte Änderung: 01.11.2017 14:15 Algorithmen und Datenstrukturen I, Grundlagen 1/24 Algorithmus es gibt keine präzise Definition Handlungsvorschrift
MehrPräsenzübung Datenstrukturen und Algorithmen SS 2014
Prof. aa Dr. E. Ábrahám F. Corzilius, S. Schupp, T. Ströder Präsenzübung Datenstrukturen und Algorithmen SS 2014 Vorname: Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik
MehrAsymptotik und Laufzeitanalyse
und Vorkurs Informatik SoSe13 08. April 2013 und Algorithmen = Rechenvorschriften Wir fragen uns: Ist der Algorithmus effizient? welcher Algorithmus löst das Problem schneller? wie lange braucht der Algorithmus
Mehr? P = NP Die 1 Million $ Frage. Prof. Dr. Hans Jürgen Ohlbach P =? NP
? P = NP Die 1 Million $ Frage Prof. Dr. Hans Jürgen Ohlbach 1 Historie 23 Hilbertsche Probleme aus dem Jahr 1900 Derzeit 10 gelöst 5 ungelöst 8 unklar formuliert oder teilweise gelöst David Hilbert 1886
MehrEinführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
Mehr3.3 Laufzeit von Programmen
3.3 Laufzeit von Programmen Die Laufzeit eines Programmes T(n) messen wir als die Zahl der Befehle, die für die Eingabe n abgearbeitet werden Betrachten wir unser Programm zur Berechnung von Zweierpotenzen,
MehrAlgorithmen I - Tutorium 28 Nr. 3
Algorithmen I - Tutorium 28 Nr. 3 18.05.2016: Spaß mit Listen, Arrays und amortisierter Analyse Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN
MehrÜbersicht. Datenstrukturen und Algorithmen. Divide-and-Conquer. Übersicht. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Algorithmus Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-5/dsal/ 2 7.
MehrAnwendungsbeispiel MinHeap
Anwendungsbeispiel MinHeap Uns seien n ganze Zahlen gegeben und wir möchten darin die k größten Zahlen bestimmen; zudem gelten, dass n deutlich größer als k ist Wir können das Problem mit Laufzeit in O(n
Mehrf 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Präsenzübung.05.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Asymptotische Komplexität): (6 + 0 + 6 = Punkte) a) Geben Sie eine formale
MehrQuickSort ist ein Sortieralgorithmus, der auf der Idee des Teile & Beherrsche beruht, und das gegebene Array an Ort und Stelle (in place) sortiert
4.3.6 QuickSort QuickSort ist ein Sortieralgorithmus, der auf der Idee des Teile & Beherrsche beruht, und das gegebene Array an Ort und Stelle (in place) sortiert QuickSort teilt das gegebene Array anhand
MehrOrdnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1)
für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Asymptotische Komplexität): Ordnen Sie die folgenden Funktionen nach
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
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
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
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
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:
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
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
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
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare
MehrTutoraufgabe 1 (Sortieren): Lösung: Datenstrukturen und Algorithmen SS14 Lösung - Übung 4
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Übung F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe (Sortieren): a) Sortieren Sie das folgende Array durch Anwendung des Selectionsort-Algorithmus.
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Untere Schranken für Sortieren Sortieren mit linearem Aufwand Mediane und Ranggrössen 2 Wie schnell können wir sortieren?
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.
MehrZunächst ein paar einfache "Rechen"-Regeln: Lemma, Teil 1: Für beliebige Funktionen f und g gilt:
Der Groß-O-Kalkül Zunächst ein paar einfache "Rechen"-Regeln: G. Zachmann Informatik 1 - WS 05/06 Komplexität 22 Additionsregel Lemma, Teil 1: Für beliebige Funktionen f und g gilt: Zu beweisen: nur das
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
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
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.
MehrWelche Probleme können Rechner (effizient) lösen? Die P = NP Frage. Ideen der Informatik Kurt Mehlhorn
Welche Probleme können Rechner (effizient) lösen? Die P = NP Frage Ideen der Informatik Kurt Mehlhorn Gliederung Ziele von Theorie Gibt es Probleme, die man prinzipiell nicht mit einem Rechner lösen kann?
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
MehrÜbungsklausur Algorithmen I
Universität Karlsruhe, Institut für Theoretische Informatik Prof. Dr. P. Sanders 26.5.2010 svorschlag Übungsklausur Algorithmen I Hiermit bestätige ich, dass ich die Klausur selbständig bearbeitet habe:
MehrInformatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest
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 & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik Was ist ein Algorithmus? Ein Algorithmus ist eine eindeutige Handlungsvorschrift, [bestehend] aus endlich vielen, wohldefinierten
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 (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
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
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
MehrLernmodul 7 Algorithmus von Dijkstra
Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer
MehrClevere Algorithmen programmieren
ClevAlg 2017 Theoretische Informatik Clevere Algorithmen programmieren Dennis Komm, Jakub Závodný, Tobias Kohn 06. Dezember 2017 Die zentralen Fragen sind... Was kann man mit einem Computer nicht machen?
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
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
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Einleitung und Grundlagen Maike Buchin 18.4.2017 Verantwortliche Dozentin Organisation der Übungen Übungsleiter Korrekteure Maike Buchin Maike.Buchin@rub.de Raum NA 1/70 Sprechzeiten:
MehrA7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.2 Quicksort. A7.
Algorithmen und Datenstrukturen 14. März 2018 A7. III Algorithmen und Datenstrukturen A7. III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 A7.1 Untere Schranke A7.2 Quicksort A7.3 Heapsort
MehrJava. public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; Java
Einführung Elementare Datenstrukturen (Folie 27, Seite 15 im Skript) Java Java public D find(k k) { Listnode K, D n = findnode(k); if(n == null) return null; return n.data; } protected Listnode K, D findnode(k
MehrHumboldt-Universität zu Berlin Berlin, den Institut für Informatik
Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt
MehrDie Komplexitätsklassen P und NP
Die Komplexitätsklassen P und NP Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen November 2011 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und
MehrAlgorithmen und Datenstrukturen (AuD) Prof. Dr. Claudia Eckert und Dr. Thomas Stibor
Algorithmen und Datenstrukturen (AuD) Prof. Dr. Claudia Eckert und Dr. Thomas Stibor Organisatorisches: Vorlesung 4 SWS, Zentralübung 2 SWS: 6 Credit Points Mi 9:45 11:15 Raum 1200 (Vorlesung) Do 8:00
MehrHeapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als
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
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
MehrAlgorithmen und Datenstrukturen Effizienz und Funktionenklassen
Algorithmen und Datenstrukturen Effizienz und Funktionenklassen Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren,
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
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
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion
MehrEinführung Erfüllbarkeitsproblem NP-Vollständigkeit Definition von NP Was wäre, wenn Was tun? Ideen und Konzepte der Informatik.
Ideen und Konzepte der Informatik P versus NP Die Grenzen der (effizienter) Berechnung? Antonios Antoniadis Basiert auf Folien von Kurt Mehlhorn 8. Jan. 2018 8. Jan. 2018 1/24 Gliederung Ziele von Theorie/Grundlagenforschung
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
MehrSortieren II / HeapSort Heaps
Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: dsal-i1@algo.rwth-aachen.de Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php
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
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
Mehr8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.
8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.
MehrAlgorithmentheorie 1. Vorlesung
Algorithmentheorie 1. Vorlesung Martin Dietzfelbinger 6. April 2006 FG KTuEA, TU Ilmenau AT 06.04.2006 Methode, Material Vorlesung Vorlesungsskript (Netz, Copyshop) Folien (im Netz) Vorlesung nachbereiten!
MehrGraphdurchmusterung, Breiten- und Tiefensuche
Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,
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
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
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
Algorithmen und Datenstrukturen A7. Sortieren III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 Untere Schranke Sortierverfahren Sortieren Vergleichsbasierte Verfahren Nicht vergleichsbasierte
MehrTutoraufgabe 1 (Sortieralgorithmus):
Prof. aa Dr. Ir. Joost-Pieter Katoen Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung 4 (Abgabe 2..2) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Sortieralgorithmus):
MehrKap. 3: Sortieren (3)
Kap. 3: Sortieren (3) Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund 6. VO DAP2 SS 2009 30. April 2009 Überblick Quick-Sort Analyse von Quick-Sort Quick-Sort
MehrTheoretische Informatik 1
Theoretische Informatik 1 Registermaschine David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Registermaschinen Algorithmusbegriff konkretisiert formale Beschreibung
Mehr. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall:
Laufzeit von Quicksort im Mittel. Wir wollen die erwartete Effizienz von Quicksort ermitteln. Wir nehmen an, die Wahrscheinlichkeit, dass das gewählte Pivot-Element a j das k-t kleinste Element der Folge
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 15b (13.06.2018) Graphenalgorithmen IV Algorithmen und Komplexität Prims MST-Algorithmus A = while A ist kein Spannbaum do e = u, v ist
MehrÜbersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter
MehrAlgorithmen und Datenstrukturen ITS(B)-B 2016
Einführung Was ist (die) Informatik? Die Informatik und ihre Geschichte sowie ihre Abgrenzung von anderen Wissenschaften darzulegen gestaltet sich nicht ganz einfach (siehe dazu unter vielen Anderen ((GI)
MehrInformatik II. Woche 15, Giuseppe Accaputo
Informatik II Woche 15, 13.04.2017 Giuseppe Accaputo g@accaputo.ch 1 Themenübersicht Repetition: Pass by Value & Referenzen allgemein Repetition: Asymptotische Komplexität Live-Programmierung Aufgabe 7.1
MehrAlgorithmentheorie 1. Vorlesung
Algorithmentheorie. Vorlesung Martin Dietzfelbinger 6. April 2006 Methode, Material Vorlesung Vorlesungsskript (Netz, Copyshop) Folien (im Netz) Vorlesung nachbereiten! Übung Übungsblätter (im Netz) Übung
MehrP, NP und NP -Vollständigkeit
P, NP und NP -Vollständigkeit Mit der Turing-Maschine haben wir einen Formalismus kennengelernt, um über das Berechenbare nachdenken und argumentieren zu können. Wie unsere bisherigen Automatenmodelle
Mehr5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
5. Algorithmen K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 21. Okt. 2015 1. Berechne 2 n. Zu lösende Probleme 2. Berechne die Fakultät einer nat. Zahl: n! = 1 * 2 *... n 3. Entscheide,
MehrKomplexität von Algorithmen:
Komplexität von Algorithmen: Ansatz: Beschreiben/erfassen der Komplexität über eine Funktion, zur Abschätzung des Rechenaufwandes abhängig von der Größe der Eingabe n Uns interessiert: (1) Wie sieht eine
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
MehrKarlsruher Institut für Technologie. Klausur Algorithmen I
Klausur-ID: Vorname: Matrikelnummer: Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Jörn Müller-Quade 11. April 2018 Klausur Algorithmen I Aufgabe 1. Kleinaufgaben 15 Punkte
Mehr8 Komplexitätstheorie
8 Komplexitätstheorie Formale Grundlagen der Informatik I Herbstsemester 2012 Robert Marti Vorlesung teilweise basierend auf Unterlagen von Prof. emer. Helmut Schauer Grundidee der Komplexitätstheorie
Mehr