Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung

Größe: px
Ab Seite anzeigen:

Download "Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung"

Transkript

1 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 Datenstrukturen 7. Algorithmische Geometrie 8. Umgang mit algorithmisch schwierigen Problemen Divide and Conquer Dynamisches Programmieren Greedy-Algorithmen 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

2 Gliederung u Fahrplan (/* Divide and Conquer */) allgemeines Schema Laufzeitanalyse (/* Mastertheorem */) Beispiele MergeSort schnelle Multiplikation Ergänzungen 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

3 Allgemeines Schema u Divide and Conquer Algorithmen u Anmerkungen Schritt 1 (/* Divide */) Vorschrift anwenden, mit der das Gesamtproblem in Teilprobleme zerlegt werden kann Schritt 2 (/* Conquer */) Anwendung desselben Algorithmus zur Lösung der Teilprobleme Ergebnis: Lösung für jedes Teilproblem Schritt 3 (/* Merge */) Vorschrift anwenden, mit der aus den Lösungen der Teilprobleme eine Lösung des Gesamtproblems konstruiert werden kann wenn rekursiv definiert ist, was eine Lösung des Gesamtproblems charakterisiert, ist fast nichts zu tun anderenfalls ist Kreativität gefragt 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

4 Laufzeitanalyse u Laufzeitanalyse (/* Anwendung des Mastertheorems */) Es seien a 1, b > 1 und f eine Funktion von N à R mit f(n) Θ(n k ) für ein k 0. Ferner habe die verwendete Rekursionsgleichung die Form F(n) = a*f(n/b) + f(n). Dann gilt: F(n) Θ(n k ), falls a < b k F(n) Θ(n k * log(n)), falls a = b k F(n) Θ(n c ) mit c = log b (a), falls a > b k... a = Anzahl der Teilprobleme in Schritt 2 (/* Conquer */)... n/b = Größe der Teilprobleme in Schritt 2 (/* Conquer */)... f(n) = Laufzeit für Schritt 1 (/* Divide */) und Schritt 3 (/* Merge */) 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

5 Beispiel MergeSort u Problemstellung (/* Sortieren */) zulässige Eingaben: Schlüsselfolge a[1],...,a[n] zulässige Ausgaben: aufsteigend sortierte Variante b[1],...,b[n] der Schlüsselfolge a[1],...,a[n] u Ansatzpunkt es sei c[1],...,c[n/2] die aufsteigend sortierte Variante der Teilfolge a[1],...,a[n/2] und c[n/2+1],...,c[n] die aufsteigend sortierte Variante der Teilfolge a[n/2+1],...,a[n] dann ergibt sich die gesuchte Folge b[1],...,b[n] durch Verschmelzen der bereits aufsteigend sortierten Teilfolgen c[1],...,c[n/2] und c[n/2+1],...,c[n] 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

6 Beispiel MergeSort u Problemstellung (/* Verschmelzen */) zulässige Eingaben: zulässige Ausgaben: aufsteigend sortierte Schlüsselfolgen a[1],...,a[i] und b[1],...,b[j] aufsteigend sortierte Variante c[1],...,c[i+j] der Schlüsselfolge a[1],...,a[i],b[1],...,b[j]... offenbar genügen i + j - 1 viele Vergleiche, um dieses Problem zu lösen (/* es ist sinnvoll, zusätzlichen Speicherplatz zum Speichern der Folge c[1],...,c[i+j] zu verwenden */) 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

7 Beispiel MergeSort u algorithmische Idee (/* MergeSort */) Divide Schritt: Conquer Schritt: Merge Schritt: bestimme die Folgen a[1],...,a[n/2] und a[n/2+1],...,a[n] sortiere die beiden Folgen a[1],...,a[n/2] und a[n/2+1],...,a[n] mittels MergeSort (/* Ergebnis: c[1],...,c[n/2] und c[n/2+1],...,c[n] */) verschmelze die beiden Folgen c[1],...,c[n/2] und c[n/2+1],...,c[n] zur sortierten Folge b[1],...,b[n]... falls n = 1 ist, ist nichts zu tun 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

8 Beispiel MergeSort u Illustration /1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

9 Beispiel MergeSort u Illustration /1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

10 Beispiel MergeSort u Analyse (/* MergeSort */) es bezeichne V(A,n) die Anzahl der Vergleiche, die MergeSort bei Eingabe einer Schlüsselfolge der Länge n benötigt Divide Schritt: 0 Vergleiche Conquer Schritt: 2*V(A,n/2) viele Vergleiche Merge Schritt: n - 1 viele Vergleiche Es gilt: V(A,n) = 2*V(A,n/2) + n - 1. Damit gilt: V(A,n) Θ(n*log(n)). 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

11 u Problemstellung zulässige Eingaben: Dezimaldarstellung einer Zahl a, d.h. a = a[n]...a[1] Dezimaldarstellung einer Zahl b, d.h. b = b[n]...b[1] zulässige Ausgaben: Dezimaldarstellung der Zahl c = a*b, d.h. c = c[m]...c[1] mit m 2n u... für die Laufzeitanalyse relevant Größe der Eingabe = Länge der Dezimalzahlen (/* also n */) relevante Operationen Elementar-Operationen auf Ziffern-Ebene (/* 3*9, 7+5, 3-2*/) Shift-Operationen auf Ziffern-Ebene 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

12 u Schulmethode 7641 * EO + 3 SO 4 EO + 2 SO 4 EO + 1 SO 4 EO + 0 SO 5 EO 6 EO 7 EO 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

13 u Schulmethode (/* Analyse für den worst case */) Phase 1: Multiplikation n mal insgesamt Ω(n 2 ) viele Elementar-Operationen insgesamt Ω(n 2 ) viele Shift-Operationen Phase 2: Addition n-1 mal insgesamt Ω(n 2 ) viele Elementar-Operationen... im worst case benötigt die Schulmethode Ω(n 2 ) viele Elementar- Operationen und Ω(n 2 ) viele Shift-Operationen 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

14 u Bauernmethode h a l b i e r e n 7641 * v e r d o p p e l n /1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

15 u Bauernmethode (/* Korrektheit */) 7641 * * 8512 = ( ) * 8512 = ( )*8512 = = /1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

16 u Bauernmethode (/* Analyse für den worst case */) Phase 1: halbieren / verdoppeln 4n mal insgesamt Ω(n 2 ) viele Elementar-Operationen Phase 2: addieren 4n mal jeweils Ω(n) viele Elementar-Operationen... im worst case benötigt die Bauernmethode Ω(n 2 ) viele Elementar- Operationen... Vorteil: Halbieren/Verdoppeln kann man schneller realisieren als die üblichen Elementar-Operationen 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

17 u Divide and Conquer (/* Version 1, Vorüberlegung */) es seien a = a v *x + a h und b = b v *x + b h a*b = (a v *b v )*x 2 + (a v *b h + a h *b v )*x + a h *b h... wähle x derart, daß die Multiplikationen mit x bzw. x 2 einfach sind a v und a h bzw. b v und b h kürzer als a bzw. b sind 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

18 u Divide and Conquer (/* Version 1, Beispiel */) 7641 * 8512 = (76*85)* (76* *85)* (41*12) = 6460* ( )* = = * 85 = (7*8)* (7*5 + 6*8)*10 + (6*5) = 56* (35+48)* = = * 12 = *8, 7*5,... werden direkt berechnet 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

19 u Divide and Conquer (/* Version 1 */) a[n]... a[1] = a[n]... a[n/2]*10 n/2 + a[n/2-1]... a[1] a a v a h b[n]... b[1] = b[n]... b[n/2]*10 n/2 + b[n/2-1]... b[1] b b v b h Divide Schritt: Conquer Schritt: Merge Schritt: bestimme a v, a h, b v und b h bestimme c 1 = a v *b v, c 2 = a v *b h, c 3 = a h *b v und c 4 = a v *b h bestimme d 1 = c 1 *10 n, d 2 = c 2 + c 3 und d 3 = d 2 *10 n/2 bestimme d 1 + d 3 + c 4 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

20 u Divide and Conquer (/* Version 1; Analyse */) es bezeichne # op (A,n) die Anzahl der Elementar-Operationen und Shift- Operationen, die diese Version bei Eingabe von Dezimalzahlen der Länge n benötigt Divide Schritt: Θ(n) viele Shift-Operationen Conquer Schritt: 4*# op (A,n/2) viele Elementar- und Shift- Operationen Merge Schritt: Θ(n) viele Shift-Operationen und Θ(n) viele Elementar-Operationen Es gilt: # op (A,n) = 4*# op (A,n/2) + Θ(n). Damit gilt: # op (A,n) Θ(n 2 ). 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

21 u Divide and Conquer (/* Version 2, Vorüberlegung */) es seien a = a v x + a h und b = b v x + b h ab = (a v *b v )*x 2 + (a v *b h + a h *b v )*x + a h *b h a v *b h + a h *b v = a v *b h + a h *b v + a v *b v + a h *b h - a v *b v - a h *b h = a v *b v + a h *b h - a h *b h + a h *b v + a v *b h - a v *b v = a v *b v + a h *b h - (a h - a v )*(b h - b v ) a*b = (a v *b v )*x 2 + (a v *b v + a h *b h - (a h - a v )*(b h - b v ))*x + a h *b h 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

22 u Divide and Conquer (/* Version 2, Beispiel */) 7641 * 8512 = (76*85)* (76* *12 - (41-76)*(12-85))* (41*12) = 6460* ( ((-35)*(-73)))* = ( )* = = * 85 = (7*8)* (7*8 + 6*5 - (6-7)*(5-8))*10 + (6*5) = 56* (56+30-((-1)*(-3)))* = ( )* = = * 12 =... 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik... 7*8, 7*5,... werden direkt berechnet

23 u Divide and Conquer (/* Version 2 */) a[n]... a[1] = a[n]... a[n/2]*10 n/2 + a[n/2-1]... a[1] a a v a h b[n]... b[1] = b[n]... b[n/2]*10 n/2 + b[n/2-1]... b[1] b b v b h Divide Schritt: Conquer Schritt: Merge Schritt: bestimme a v, a h, b v und b h sowie e 1 = a v - a h, e 2 = b v - b h bestimme c 1 = a v *b v, c 2 = a h *b h, und c 3 = e 1 *e 2 bestimme d 1 = c 1 *10 n, d 2 = c 1 + c 2 - c 3 und d 3 = d 2 *10 n/2 bestimme d 1 + d 3 + c 2 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

24 u Divide and Conquer (/* Version 2; Analyse */) es bezeichne # op (A,n) die Anzahl der Elementar-Operationen und Shift- Operationen, die diese Version bei Eingabe von Dezimalzahlen der Länge n benötigt Divide Schritt: Conquer Schritt: Merge Schritt: Θ(n) viele Elementar-Operationen 3*# op (A,n/2) viele Elementar-und Shift- Operationen Θ(n) viele Shift-Operationen und Θ(n) viele Elementar-Operationen Es gilt: # op (A,n) = 3* # op (A,n/2) + Θ(n). Damit gilt: # op (A,n) Θ(n log 2 (3) ).... log 2 (3) = /1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

25 Ergänzungen u... manchmal gibt es Probleme mit der Effizienz... selbst wenn rekursiv definiert ist, was eine Lösung des Gesamtproblems charakterisiert, sollte man nicht immer das Problem rekursiv lösen u... Beispiel Fibonacci Zahlen fib(n) = 0, falls n = 0 fib(n) = 1, falls n = 1 fib(n) = fib(n-1) + fib(n-2), sonst 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

26 Ergänzungen u... Bedeutung der Fibonacci-Zahlen Die Fibonacci-Zahlen können beispielsweise verwendet werden, um das Wachstum von Populationen zu beschreiben. Zum Zeitpunkt n = 1 gibt es ein weibliches Kaninchen, das noch nicht fortpflanzungsfähig ist. Jedes weibliches Kaninchen benötigt eine Zeiteinheit, um fortpflanzungsfähig zu werden. Jedes fortpflanzungsfähige Kaninchen bringt pro Zeiteinheit ein weibliches, noch nicht fortpflanzungsfähiges Kaninchen zur Welt. Weibliche Kaninchen sterben nicht. 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

27 Ergänzungen u... rekursive Implementierung (/* Divide and Conquer */) int fib ( int n ) { int result = 0; if ( n == 1 ) result = 1; if ( n > 1) result = fib(n-2) + fib(n-1); return (result); } u Anzahl der auszuführenden Additionen (/* T(A,n) */) T(A,n) = 0, falls n = 0 oder n = 1 T(A,n) = T(A,n-1) + T(A,n-2) + 1 T(A,n) Ω(c n ) für c = sqrt(5)/2 + 1/2 5/1, Folie Prof. Steffen Lange - HDa/FbI - Algorithmik

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Ü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

Mehr

Algorithmik - Kompaktkurs

Algorithmik - Kompaktkurs Algorithmik - Kompaktkurs Sommersemester 2012 Steffen Lange 0/1, Folie 1 2012 Prof. Steffen Lange - HDa/FbI - Algorithmik Organisatorisches Vorlesung Folien im Netz (/* bitte zur Vorlesung mitbringen */)

Mehr

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

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

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

Kapitel 5: Dynamisches Programmieren Gliederung

Kapitel 5: Dynamisches Programmieren Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Teile und Herrsche Teil 2

Teile und Herrsche Teil 2 Teile und Herrsche Teil 2 binär Suchen und schnell Multiplizieren Markus Fleck Manuel Mauky Hochschule Zittau/Görlitz 19. April 2009 Suchen in langen Listen (0, 1, 2, 7, 8, 9, 9, 13, 13, 14, 14, 14, 16,

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

Mehr

Uebersicht. Webpage & Ilias. Administratives. Lehrbuch. Vorkenntnisse. Datenstrukturen & Algorithmen

Uebersicht. Webpage & Ilias. Administratives. Lehrbuch. Vorkenntnisse. Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Uebersicht Administratives Einleitung Ein einführendes Beispiel Matthias Zwicker Universität Bern Frühling 2010 2 Administratives Dozent Prof. Zwicker, zwicker@iam.unibe.ch

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 8, Donnerstag 11.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 8, Donnerstag 11. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 8, Donnerstag 11. Dezember 2014 (Cache-Effizienz, Teile und Herrsche) Junior-Prof. Dr.

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Programmieren I. Kapitel 7. Sortieren und Suchen

Programmieren I. Kapitel 7. Sortieren und Suchen Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren

Mehr

Kostenmaße. F3 03/04 p.188/395

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner

Mehr

Algorithmen und Programmierung

Algorithmen und Programmierung Algorithmen und Programmierung Kapitel 7 Ausgewählte Algorithmen A&P (WS 4/): 07 Ausgewählte Algorithmen Überblick Suchen in sortierten Folgen Sortieren Anhang: Entwurf von Algorithmen per Induktion A&P

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

MATHEMATISCHE ANALYSE VON ALGORITHMEN

MATHEMATISCHE ANALYSE VON ALGORITHMEN MATHEMATISCHE ANALYSE VON ALGORITHMEN Michael Drmota Institut für Diskrete Mathematik und Geometrie, TU Wien michael.drmota@tuwien.ac.at www.dmg.tuwien.ac.at/drmota/ Ringvorlesung SS 2008, TU Wien Algorithmus

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

3. Übung Algorithmen I

3. Übung Algorithmen I Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen

Mehr

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011 Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Werner Struckmann Wintersemester 2005/06 9. Entwurf von Algorithmen 9.1 Einführung 9.2 Teile-und-Beherrsche-Algorithmen 9.3 Gierige Algorithmen 9.4 Backtracking-Algorithmen

Mehr

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik Grundlagen der Programmierung 1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2 Softwaretechnik Prof. Dr. O. Drobnik Professur Architektur und Betrieb verteilter Systeme Institut für

Mehr

Michael Philippsen 1. Algorithmen und Datenstrukturen. 9. Algorithmenherleitung durch Induktion. 9. Algorithmenherleitung durch Induktion

Michael Philippsen 1. Algorithmen und Datenstrukturen. 9. Algorithmenherleitung durch Induktion. 9. Algorithmenherleitung durch Induktion 9. Algorithmenherleitung durch Induktion Algorithmen und Datenstrukturen 9. Algorithmenherleitung durch Induktion Prof. Dr. Christoph Pflaum Department Informatik Martensstraße 3 958 Erlangen 9. Induktionsformen

Mehr

7. Übung zu Algorithmen und Datenstrukturen

7. Übung zu Algorithmen und Datenstrukturen 7. Übung zu Algorithmen und Datenstrukturen Dynamisches Programmieren Greedy Algorithms Exceptions 1 Dynamische Programmierung nutzt gezielt aus, dass man bei manchen Problemen den Rechenaufwand extrem

Mehr

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Ziele der Übung Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Codeanalyse

Mehr

Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou

Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort Equivalenz?

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Dynamische Programmierung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 2 Übersicht Stammt aus den Zeiten als mit Programmierung

Mehr

Laufzeit und Komplexität

Laufzeit und Komplexität Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen

Mehr

SOI 2013. Die Schweizer Informatikolympiade

SOI 2013. Die Schweizer Informatikolympiade SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Numerische Verfahren und Grundlagen der Analysis

Numerische Verfahren und Grundlagen der Analysis Numerische Verfahren und Grundlagen der Analysis Rasa Steuding Hochschule RheinMain Wiesbaden Wintersemester 2011/12 R. Steuding (HS-RM) NumAna Wintersemester 2011/12 1 / 16 4. Groß-O R. Steuding (HS-RM)

Mehr

Einführung in die Informatik 1

Einführung in die Informatik 1 Einführung in die Informatik 1 Datenorganisation und Datenstrukturen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Überblick. Lineares Suchen

Überblick. Lineares Suchen Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Makespan-Scheduling Kapitel 4: Approximationsalgorithmen (dritter Teil) (weitere Beispiele und Illustrationen an der Tafel) Hilfreiche Literatur: Vazarani: Approximation Algorithms, Springer Verlag, 2001.

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl

Mehr

Methoden zum Lösen von Rekursionsgleichungen

Methoden zum Lösen von Rekursionsgleichungen Rekursionsgleichungen... Slide 1 Methoden zum Lösen von Rekursionsgleichungen Bisher wurde Expandieren der Rekursion + Raten der Gesetzmäßigkeit benutzt, um einfache Rekursionsgleichungen zu lösen. Zum

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

Algorithms & Datastructures Midterm Test 1

Algorithms & Datastructures Midterm Test 1 Algorithms & Datastructures Midterm Test 1 Wolfgang Pausch Heiko Studt René Thiemann Tomas Vitvar

Mehr

Die Komplexitätsklassen P und NP

Die 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 3. Dezember 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und

Mehr

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung

Mehr

Suchen und Sortieren (Die klassischen Algorithmen)

Suchen und Sortieren (Die klassischen Algorithmen) Suchen und Sortieren (Die klassischen Algorithmen) Lineare Suche und Binäre Suche (Vorbedingung und Komplexität) Sortieralgorithmen (allgemein) Direkte Sortierverfahren (einfach aber langsam) Schnelle

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)

Mehr

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in

Mehr

Kapitel 9 Suchalgorithmen

Kapitel 9 Suchalgorithmen Kapitel 9 Suchalgorithmen Technische Universität München Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für

Mehr

Programmierung in Python

Programmierung in Python Programmierung in Python imperativ, objekt-orientiert dynamische Typisierung rapid prototyping Script-Sprache Funktionales und rekursives Programmieren P raktische Informatik 1, W S 2004/05, F olien P

Mehr

Höhere Algorithmik. Eine Vorlesung von Prof. Dr. Helmut Alt Mitschrift von Pascal-Nicolas Becker

Höhere Algorithmik. Eine Vorlesung von Prof. Dr. Helmut Alt Mitschrift von Pascal-Nicolas Becker Höhere Algorithmik Eine Vorlesung von Prof. Dr. Helmut Alt Mitschrift von Pascal-Nicolas Becker Wintersemsester 2010/2011 Stand: 02.08.2011 flattr.com/t/78695 Dieses Skript ist eine Mitschrift der Vorlesung

Mehr

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur [CS3100.010] Wintersemester 2014/15 Heiko Falk Institut für Eingebettete Systeme/Echtzeitsysteme Ingenieurwissenschaften und Informatik Universität Ulm Kapitel 5 Rechnerarithmetik

Mehr

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen 9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam

Mehr

Maximale Teilsummen Algorithmendesign

Maximale Teilsummen Algorithmendesign Maximale Teilsummen Algorithmendesign Die Geschichte beginnt, als Ulf Grenander 1977 an der Brown Universität Mustererkennungstechniken an digitalisierten Bildern studiert. Er möchte, um Wahrscheinlichkeitsabschätzungen

Mehr

Programmieren in C. Rekursive Funktionen. Prof. Dr. Nikolaus Wulff

Programmieren in C. Rekursive Funktionen. Prof. Dr. Nikolaus Wulff Programmieren in C Rekursive Funktionen Prof. Dr. Nikolaus Wulff Rekursive Funktionen Jede C Funktion besitzt ihren eigenen lokalen Satz an Variablen. Dies bietet ganze neue Möglichkeiten Funktionen zu

Mehr

Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen

Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen Großübung 1: Zahlensysteme Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen Lehrender: Dr. Klaus Richter, Institut für Informatik; E-Mail: richter@informatik.tu-freiberg.de

Mehr

MATHEMATIK PROGRAMMIEREN MIT PYTHON

MATHEMATIK PROGRAMMIEREN MIT PYTHON MATHEMATIK PROGRAMMIEREN MIT PYTHON Univ. Prof. Dr. Stefan Müller-Stach AG Zahlentheorie 27. September 2006 PYTHON: Möglichkeiten einer Programmiersprache PYTHON: Objektorientierte Sprache von Guido van

Mehr

6. Algorithmen der Computer-Geometrie

6. Algorithmen der Computer-Geometrie 6. Algorithmen der Computer-Geometrie 1. Einführung 2. Schnitt von zwei Strecken 3. Punkt-in-Polygon-Test 4. Schnitt orthogonaler Strecken 5. Punkteinschlussproblem Geo-Informationssysteme 146 6.1 Computer-Geometrie

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof Dr Hans-Dietrich Hecker Wintersemester 2003/04 Inhaltsverzeichnis 1 Einführung 9 11 Über schnelle und langsame Algorithmen 13 12 Die Klassen P und NP 14 13 Effiziente

Mehr

Grundlagen der Programmierung 2. Bäume

Grundlagen der Programmierung 2. Bäume Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

Sortierte Folgen 250

Sortierte Folgen 250 Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Sortieren durch Einfügen Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Schon wieder aufräumen Schon wieder Aufräumen, dabei habe ich doch erst neulich man findet alles schneller wieder Bücher auf Regal

Mehr

Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1

Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1 Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1 1 Primzahltest 1.1 Motivation Primzahlen spielen bei zahlreichen Algorithmen, die Methoden aus der Zahlen-Theorie verwenden, eine zentrale Rolle. Hierzu

Mehr

3. Ziel der Vorlesung

3. Ziel der Vorlesung 3. Ziel der Vorlesung Der Zweck der Vorlesung ist das Studium fundamentaler Konzepte in der Algorithmentheorie. Es werden relevante Maschinenmodelle, grundlegende und höhere Datenstrukturen sowie der Entwurf

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Anweisungen... 4-2 4.1 Strukturierte Programmierung... 4-2 4.1.1 Geschichte... 4-2 4.1.2 Strukturierung im Kleinen... 4-2 4.2 Einige Beispielanwendungen... 4-4 4.2.1 Addierer (do-schleife)...

Mehr

CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik)

CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik) Prof. Dr. Th. Letschert CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik) Vorlesung 4 Th Letschert FH Gießen-Friedberg Nebenläufige und verteilte Programme 2 : Thread-Pools Motivation:

Mehr

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

Komplexe Zahlen und Wechselstromwiderstände

Komplexe Zahlen und Wechselstromwiderstände Komplexe Zahlen und Wechselstromwiderstände Axel Tobias 22.2.2000 Ein besonderer Dank geht an Ingo Treunowski, der die Übertragung meines Manuskriptes in L A TEX durchgeführt hat tob skript komplex.tex.

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

Grenzen der Berechenbarkeit

Grenzen der Berechenbarkeit M. Jakob Gymnasium Pegnitz 3. Mai 2015 Inhaltsverzeichnis Experimentelle Laufzeitabschätzung ausgewählter Algorithmen Historische Kryptographie Moderne Kryptographie Das Halteproblem In diesem Abschnitt

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

Public-Key-Algorithmen WS2015/2016

Public-Key-Algorithmen WS2015/2016 Public-Key-Algorithmen WS2015/2016 Lernkontrollfragen Michael Braun Was bedeuten die kryptographischen Schutzziele Vertraulichkeit, Integrität, Nachrichtenauthentizität, Teilnehmerauthentizität, Verbindlichkeit?

Mehr

Modul Einführung in die Informatik : Aufgaben zur Großübung 4 Thema: Python I

Modul Einführung in die Informatik : Aufgaben zur Großübung 4 Thema: Python I Modul Einführung in die Informatik : Aufgaben zur Großübung 4 Thema: Python I 1) Berechnung der Fakultät (von einer ganzen Zahl >= 0) a) Nichtrekursive Berechnung der Fakultät (vgl. Aufg.-komplex Struktogramme,

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Proinformatik: Objektorientierte Programmierung - Tag 7 -

Proinformatik: Objektorientierte Programmierung - Tag 7 - Proinformatik: Objektorientierte Programmierung - Tag 7 - G R U N D L A G E N D E R B E R E C H E N B A R K E I T F O R M A L E V E R F A H R E N Z U R S P E Z I F I K A T I O N U N D V E R I F I K A T

Mehr

Tutorium 5 - Programmieren

Tutorium 5 - Programmieren Tutorium 5 - Programmieren Grischa Liebel Uni Karlsruhe (TH) Tutorium 11 1 Einleitung 2 Abschlussaufgaben 3 Vorlesungsstoff 4 Ergänzungen zum Vorlesungsstoff Grischa Liebel (Uni Karlsruhe (TH)) c 2008

Mehr

Computerarithmetik ( )

Computerarithmetik ( ) Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur

Mehr

Informatik II Greedy-Algorithmen

Informatik II Greedy-Algorithmen 7/7/06 lausthal Erinnerung: Dynamische Programmierung Informatik II reedy-algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Zusammenfassung der grundlegenden Idee: Optimale Sub-Struktur:

Mehr

Kapitel 4. Grundlagen der Analyse von Algorithmen. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

Kapitel 4. Grundlagen der Analyse von Algorithmen. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen Kapitel 4 Grundlagen der Analyse von Algorithmen 1 4.1 Kostenfunktion zu Beurteilung von Algorithmen Die Angabe der Laufzeit (und etwas weniger wichtig des Speicherplatzes) liefert das wichtigste Maß für

Mehr

Binäre Gleitkommazahlen

Binäre Gleitkommazahlen Binäre Gleitkommazahlen Was ist die wissenschaftliche, normalisierte Darstellung der binären Gleitkommazahl zur dezimalen Gleitkommazahl 0,625? Grundlagen der Rechnerarchitektur Logik und Arithmetik 72

Mehr

allgemeine Eigenschaften von Algorithmen (zur Erinnerung): Terminierung: Ergebnis liegt nach endlich vielen Schritten vor

allgemeine Eigenschaften von Algorithmen (zur Erinnerung): Terminierung: Ergebnis liegt nach endlich vielen Schritten vor Kapitel A := α ω λ Programmierung A.1 Programm und Algorithmus A.2 Algorithmusdarstellungen A.3 Eigenschaften von Algorithmen O 2007 Andreas Behrend Informatik I 1 Eigenschaften von Algorithmen (1) allgemeine

Mehr

4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04

4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04 4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04 JOACHIM VON ZUR GATHEN, OLAF MÜLLER, MICHAEL NÜSKEN Abgabe bis Freitag, 14. November 2003, 11 11 in den jeweils richtigen grünen oder roten Kasten

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

Grundlagen der Informatik 2 (GdI2) - Algorithmen und Datenstrukturen -

Grundlagen der Informatik 2 (GdI2) - Algorithmen und Datenstrukturen - Grundlagen der Informatik 2 (GdI2) - Algorithmen und Datenstrukturen - 2) Algorithmenanalyse Prof. Dr. Anja Schanzenberger FH Augsburg, Fakultät für Informatik Kontakt: anja.schanzenberger@hs-augsburg.de

Mehr

Skript zur Vorlesung Algorithmentheorie

Skript zur Vorlesung Algorithmentheorie Skript zur Vorlesung Algorithmentheorie Prof. Dr. Georg Schnitger WS 2010/11 Hinweise auf Fehler und Anregungen zum Skript bitte an matthias@thi.informatik.uni-frankfurt.de Mit einem Stern gekennzeichnete

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm Studienanforderungen Studiengang Maschinenbau Programmieren Begleitende Übungen zu Veranstaltungen Umsetzen des Algorithmus in ein lauffähiges Programm Studiengang Bauingenieurwesen Programmieren Begleitende

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................

Mehr

Kap. 4.2: Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:

Mehr

1. Probeklausur zu Programmierung 1 (WS 07/08)

1. Probeklausur zu Programmierung 1 (WS 07/08) Fachschaft Informatikstudiengänge Fachrichtung 6.2 Informatik Das Team der Bremser 1. Probeklausur zu Programmierung 1 (WS 07/08) http://fsinfo.cs.uni-sb.de Name Matrikelnummer Bitte öffnen Sie das Klausurheft

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Gierige Algorithmen Sarah Nuißl Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Einführung Gierige Algorithmen vs. Dynamisches Programmieren Beispiele

Mehr