Prof. Dr. Margarita Esponda
|
|
- Eduard Paul Möller
- vor 6 Jahren
- Abrufe
Transkript
1 Analyse von Algorithmen Die O-Notation WS 2012/2013 Prof. Dr. Margarita Esponda Freie Universität Berlin 1
2 Korrekte und effiziente Lösung von Problemen Problem Wesentlicher Teil der Lösung eines Problems. Sehr kreative Phase Algorithmus Programmierung oder Codierung des Algorithmus in einer bestimmten Programmiersprache. Programm in einer höheren Programmiersprache Einfache Phase 2
3 Analyse von Algorithmen Korrektheit Wichtigste Eigenschaften bei der Analyse von Algorithmen Terminierbarkeit Rechenzeit Komplexität Speicherplatz Bandbreite oder Datentransfer 3
4 Analyse von Algorithmen Rechenzeit Anzahl der durchgeführten Elementaroperationen in Abhängigkeit von der Eingabegröße. Speicherplatz Maximaler Speicherverbrauch während der Ausführung des Algorithmus in Abhängigkeit von der Komplexität der Eingabe. Bandbreite Wie groß ist die erforderliche Datenübertragung. 4
5 Analyse von Algorithmen Charakterisierung unserer Daten (Eingabegröße) Bestimmung der abstrakten Operationen Zeitanalyse (Berechnungsschritte in unserem Algorithmus) Eigentliche mathematische Analyse, um eine Funktion in Abhängigkeit der Eingabegröße zu finden. Komplexitätsanalyse 5
6 Eingabedaten Zuerst müssen wir unsere Eingabedaten charakterisieren. Meistens ist es sehr schwer eine genaue Verteilung der Daten zu finden, die dem realen Fall entspricht. Deswegen müssen wir in der Regel den schlimmsten Fall betrachten und auf diese Weise eine obere Schranke für die Laufzeit finden. Wenn diese obere Schranke korrekt ist, garantieren wir, dass -für beliebige Eingabedaten- die Laufzeit unseres Algorithmus immer kleiner oder gleich dieser Schranke ist. Beispiel: Die Anzahl der Objekte, die wir sortieren wollen Die Anzahl der Listen, die wir verarbeiten wollen u.s.w. 6
7 Die zu messenden Operationen Der zweite Schritt unserer Analyse ist die Bestimmung der abstrakten Operationen, die wir messen wollen. D.h., Operationen, die mehrere kleinere Operationen zusammenfassen, welche einzeln in konstanter Zeit ausgeführt werden, aber den gesamten Zeitaufwand des Algorithmus durch ihr häufiges Vorkommen wesentlich mitbestimmen. 7
8 Die zu messenden Operationen Beispiel: Bei Sortieralgorithmen messen wir Vergleiche Bei Algorithmen in imperativen Sprachen: Speicherzugriffe Anzahl der Multiplikationen Anzahl der Bitoperationen Anzahl der Schleifen-Durchgänge Anzahl der Funktionsaufrufe u.s.w. In Funktionalen Programmiersprachen Anzahl der Reduktionen 8
9 Die eigentliche Analyse Hier wird eine mathematische Analyse durchgeführt, um die Anzahl der Operationen zu bestimmen. Das Problem besteht darin, die beste obere Schranke zu finden, d.h. eine Schranke, die tatsächlich erreicht wird, wenn die ungünstigsten Eingabedaten vorkommen. (worst case). Die meisten Algorithmen besitzen einen Hauptparameter N, der die Anzahl der zu verarbeitenden Datenelemente angibt. Die obere Schranke ist eine Funktion, die das Wachstum der Laufzeit in Abhängigkeit der Eingabegröße beschreibt. Oft ist es für die Praxis sehr nützlich, den mittleren Fall zu finden, aber meistens ist diese Berechnung sehr aufwendig. 9
10 Summe und Multiplikation in der Schule Summe n Eingabegröße: n = Zahlenbreite * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Berechnungsschritt: Addition von zwei Ziffern * * * * * * * * * * * * Komplexitätsanalyse: T(n) = Anzahl der Berechnungsschritte, um zwei Zahlen mit n Im schlimmsten Fall: Ziffern zu addieren T(n) = 2n T(n) ist eine lineare Funktion 10
11 Multiplikation n x * * * * * * * * * * * * * * n 2 Eingabegröße: n = Anzahl der Ziffern n 2 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * n n n n n n n Berechnungsschritt: Multiplikation von zwei Ziffern Komplexitätsanalyse: T(n) = n 2 Im schlimmsten Fall Multiplikation und Addition von Ziffern keine Nullen T(n) = n 2 + cn 2 = (1+c) n 2 = an 2 immer ein Übertrag T(n) ist eine quadratische Funktion 11
12 Zeit Summe und Multiplikation Ab einem bestimmten Summe T(n)=cn n 0 gilt cn < an 2 T(n)=an 2 Multiplikation n 0 n 12
13 O-Notation Für die Effizienzanalyse von Algorithmen wird eine spezielle mathematische Notation verwendet, die als O-Notation bezeichnet wird. Die O-Notation erlaubt es, Algorithmen auf einer höheren Abstraktionsebene miteinander zu vergleichen. Algorithmen können mit Hilfe der O-Notation unabhängig von Implementierungsdetails, wie Programmiersprache, Compiler und Hardware-Eigenschaften, verglichen werden. 13
14 Definition: Die Funktion T(n) = O(g(n)), wenn es positive Konstanten c und n 0 gibt, so dass T(n) c. g(n) für alle n n 0 Zeit c. g(n) T(n) n n 0 14
15 Bedeutung der O-Notation Wichtig ist, dass O(n 2 ) eine Menge darstellt, weshalb die Schreibweise 2n + n 2 O(n 2 ) besser ist als die Schreibweise n 2 + 2n = O(n 2 ) n 2 beschreibt die allgemeine Form der Wachstumskurve n 2 + 2n = O(n 2 ) Bedeutet nicht "=" im mathematischen Sinn deswegen darf man die Gleichung nicht drehen! O(n 2 ) = n 2 + 2n FALSCH! 15
16 Eigenschaften der O-Notation Die O-Notation betont die dominante Größe Beispiel: Größter Exponent 3n 3 + n n = O(n 3 ) Ignoriert Proportionalitätskonstante Ignoriert Teile der Funktion mit kleinerer Ordnung Beispiel: 5n 2 + log 2 (n) = O(n 2 ) Teilaufgaben des Algorithmus mit kleinem Umfang 16
17 Bedeutung der O-Notation Die Definition der O-Notation besagt, dass wenn T(n) = O(g(n)), ab irgendeinem n 0 die Gleichung T(n) c. g(n) gilt. Weil T(n) und g(n) Zeitfunktionen sind, ihre Werte also immer positiv sind, gilt: T(n) c ab irgendeinem n 0 g(n) Beide Funktionen können besser verglichen werden, wenn man den Grenzwert berechnet. lim n T(n) g(n) Wenn der Grenzwert existiert, dann gilt: T(n) = O(g(n)) Wenn der Grenzwert gleich 0 ist, dann bedeutet dies, dass g(n) sogar schneller wächst als T(n). Dann wäre g(n) eine zu große Abschätzung der Laufzeit. 17
18 Bedeutung der O-Notation Beispiel: 100n n = O(n 3 )? lim n 100n3 + 15n = 100 n 3 dann gilt: 100n n = O(n 3 ) Beispiel: 3n + 7 = O(n) = O(n 2 ) = O(n 3 ) Ziel unserer Analyse ist es, die kleinste obere Schranke zu finden, die bei der ungünstigsten Dateneingabe vorkommen kann. 18
19 Klassifikation von Algorithmen Komplexitätsklassen nach Wachstumsgeschwindigkeit konstant O(1) logarithmisch O(log 2 n) O(log e n) linear O(n) quadratisch O(n 2 ) kubisch O(n 3 ) exponentiell O(2 n ) O(10 n ) 19
20 O(1) Die meisten Anweisungen in einem Programm werden nur einmal oder eine konstante Anzahl von Malen wiederholt. Wenn alle Anweisungen des Programms diese Eigenschaft haben, spricht man von konstanter Laufzeit. Beste Zielzeit bei der Entwicklung von Algorithmen! 20
21 O-Notation Beispiel: für T(n) = n 2 + 2n gilt n 2 + 2n = O(n 2 ) denn mit c=3 und ab n 0 =1 gilt 2n + n 2 c n 2 2n + n 2 3 n 2 Die Funktion T(n) liegt in der Komplexitätsklasse O(n 2 ) oder 2n + n 2 2 n 2 + n 2 2n 2 n 2 1 n Die Größenordnung der Funktion T(n) ist O(n 2 ) 21
22 Die Funktion sum berechnet für ein gegebenes n>0 die Summe aller Zahlen von 1 bis n Rekursiv direkt Formel von Gauß sum :: Integer -> Integer sum 0 = 0 sum :: Integer -> Integer sum n = div (n*(n+1)) 2 sum n = n + sum (n-1) T(n) = c 1 n c 1 = Zeitkosten einer Reduktion + einer Addition T(n) = O(n) T(n) = c 1 + c 2 c 1 = Zeitkosten einer Reduktion c 2 = Arithmetische Operationen T(n) = O(1) 22
23 Analyse mit Hilfe der O-Notation Nehmen wir an, wir möchten das größte Element einer Liste berechnen. 1. Lösung maxi :: (Ord a) => [a] -> a maxi [x] = x maxi (x:xs) all (<=x) xs = x otherwise = maxi xs Im Schlimmsten Fall brauchen wir n Reduktionen in der all-funktion, mit n gleich die Länge der Liste xs. 23
24 maxi [x] = x maxi (x:xs) all (<=x) xs = x otherwise = maxi xs maxi [x 1, x 2,, x n 1, x n ] Anzahl der Reduktionen all ( x 1 ) [x 2,, x n 1, x n ] (n) all ( x 2 ) [x 3,, x n 1, x n ] (n-1) all ( x 3 ) [x 4,, x n 1, x n ] (n-2)... all ( x [x n 2 ) n 1, x n ] 3 all ( x [x n 1 ) n ] 2 maxi [x n ] x n 1 Summe aller Reduktionen: (n)*(n+1)/2 T (n) = c 1 2 n n mit c=zeitkosten einer Reduktion T (n) = O(n 2 ) 24
25 Beispiel: Die eigentliche Analyse Das größte Element einer Liste. 2. Lösung quick_maxi :: (Ord a) => [a] -> a quick_maxi [x] = x quick_maxi (a:b:xs) = help_maxi a (b:xs) where help_maxi a [] = a help_maxi a (b:xs) a>b = help_maxi a xs otherwise = help_maxi b xs 25
26 quick_maxi [x] = x quick_maxi (a:b:xs) = help_maxi a (b:xs) where help_maxi a [] = a help_maxi a (b:xs) a>b = help_maxi a xs otherwise = help_maxi b xs quick_maxi [x 1, x 2,, x n 1, x n ] help_maxi x 1 (x 2, :[x 3,, x n 1, x n ]) Anzahl der Reduktionen help_maxi x 2 (x 3, :[x 4,, x n 1, x n ]) 1 1 T (n) = c n + 1 T (n) = O(n) help_maxi x 2 (x 4, :[x 5,, x n 1, x n ]) help_maxi x i (x n, :[]) 1 help_maxi x j [x n ] 1 26
27 Insertion-Sort isort [] = [] isort (a:x) = ins a (isort x) where ins a [] = [a] ins a (b:y) a<= b = a:(b:y) otherwise = b: (ins a y) Eingabe: n Zahlen n Berechnungsschritte: Vergleichsoperationen oder Reduktionen Komplexitätsanalyse: Im schlimmsten Fall T(n) = (n-1) = (n-1)n 2 = 1 2 n n = O(n 2 ) 27
28 Komplexität eines Algorithmus O-Notation Ω Notation θ-notation Obere Komplexitätsgrenze (höchstens) Untere Komplexitätsgrenze (mindestens) Genaue Komplexität (genau) 28
29 Definitionen: Ω Notation Komplexität eines Algorithmus Die Funktion T(n) = Ω (g(n)), wenn es positive Konstanten c und n 0 gibt, so dass T(n) c g(n) für alle n n 0 θ-notation Die Funktion T(n) = θ (g(n)) genau dann, wenn T(n) = O(g(n)) und T(n) = Ω (g(n)) 29
30 Beispiel: factorial 0 = 1 factorial n = n*factorial (n-1) Berechnung: factorial 6 => 6 * factorial 5 => 6 * (5 * factorial 4) => 6 * (5 * (4 * factorial 3)) => 6 * (5 * (4 * (3 * factorial 2))) => 6 * (5 * (4 * (3 * (2 * factorial 1)))) => 6 * (5 * (4 * (3 * (2 * (1 * factorial 0))))) => 6 * (5 * (4 * (3 * (2 * (1 * 1))))) => 6 * (5 * (4 * (3 * (2 * 1)))) => 6 * (5 * (4 * (3 * 2))) => 6 * (5 * (4 * 6)) => 6 * (5 * 24) => 6 * 120 => 720 Der Ausdruck wächst bei jedem rekursiven Aufruf der Funktion. Die Multiplikationen finden dann am Ende statt. 30
31 Implementierung der Funktion Fakultät Rekursive Definition factorial :: Int -> Int factorial 0 = 1 factorial n = n*factorial (n-1) Rechenzeit: Speicherplatz: T(n) = O(n) M(n) = O(n) 31
32 Funktionale Programmierung Rekursionsarten Lineare Rekursion Rekursive Funktionen, die in jedem Zweig ihrer Definition maximal einen rekursiven Aufruf beinhalten, werden als linear rekursiv bezeichnet. Endrekursion (tail recursion) Linear rekursive Funktionen werden als endrekursive Funktionen klassifiziert, wenn der rekursive Aufruf in jedem Zweig der Definition die letzte Aktion zur Berechnung der Funktion ist. Prof. Dr. Margarita Esponda
33 Beispiel einer endrekursiven Definition der Fakultätsfunktion quickfactorial n = factorial_helper 1 n where factorial_helper a 0 = a factorial_helper a n = factorial_helper (a*n) (n-1) Ablauf einer Berechnung: quickfactorial 6 => factorial_helper 1 6 => factorial_helper 6 5 => factorial_helper 30 4 => factorial_helper => factorial_helper => factorial_helper => factorial_helper => 720 Keine Zwischenausdrücke müssen gespeichert werden. Endrekursive Funktionen können aus diesem Grund oft vom Übersetzer (Compiler) optimiert werden, indem diese in einfache Schleifen verwandelt werden. 33
34 Implementierung der Funktion Fakultät Endrekursive Definition factorial :: Int -> Int factorial n = facthelper (1, n) where facthelper (a,0) = a facthelper (a,n) = facthelper (a*n, n-1) Wenn Tail-Recursion-Optimierungen gemacht werden. Rechenzeit: Speicherplatz: T(n) = O(n) M(n) = O(1) 34
35 Merge-Algorithmus n
36 Merge-Algorithmus 2*n Wir hatten ursprünglich zwei sortierte Mengen mit Länge n. Nach jedem Vergleich wird eine Zahl sortiert, d.h. im schlimmsten Fall haben wir 2*n Vergleiche. T(n) = 2n = O(n) 36
37 Merge-Sort-Algorithmus teile teile teile teile teile merge merge merge merge
38 Merge-Sort-Algorithmus teile teile n-1 teile Teil- Operatonen teile teile merge merge =n =n =n lg n merge =n merge n Vergleiche =n n log(n) 38
39 Merge-Sort-Algorithmus Eine Teilung kostet c 1 Ein Vergleich kostet c 2 T (n) = c 1 (n 1) + c 2 n log(n) Teiloperationen Vergleiche T (n) = O(n log(n))...nicht im Haskell! 39
40 1. Lösung (Hilfsfunktion): Merge-Sort-Algorithmus merge (Ord a) => [a] -> [a] -> [a] merge [] ys = ys merge xs [] = xs merge (x:xs) (y:ys) = if x <= y then x: (merge xs (y:ys)) else y: (merge (x:xs) ys) 40
41 1. Lösung: Merge-Sort-Algorithmus mergesortstart :: (Ord a) => [a] -> [a] mergesortstart [ ] = mergesort 0 [ ] mergesortstart xs = mergesort (length xs) xs mergesort :: Integer -> [a] mergesort _ [] = [] mergesort _ [x] = [x] mergesort _ [x,y] = if x <= y then [x,y] else [y,x] mergesort len xs = merge (mergesort h leftlist) (mergesort (len-h) rightlist) where schlecht! h = len `div` 2 leftlist = take h xs rightlist = drop h xs 41
42 2. Lösung (Hilfsfunktionen) Merge-Sort-Algorithmus split :: [a] -> [[a]] split [] = [] split [x] = [[x]] split (x:xs) = [x]: (split xs) merge :: (Ord a) => [a] -> [a] -> [a] merge [] ys = ys merge xs [] = xs merge (x:xs) (y:ys) x <= y = x: (merge xs (y:ys)) otherwise = y: (merge (x:xs) ys) 42
43 Merge-Sort-Algorithmus 2. Lösung mergelists :: (Ord a) => [[a]] -> [[a]] mergelists [] = [] mergelists [x] = [x] mergelists (x:y:xs) = (merge x y): mergelists xs mergesort :: (Ord a) => [[a]] -> [[a]] mergesort [x] = [x] mergesort (x:y:xs) = mergesort (mergelists (x:y:xs)) startmergesort :: (Ord a) => [a] -> [a] startmergesort xs = sortedlist where [sortedlist] = mergesort (split xs) 43
Prof. Dr. Margarita Esponda
Die O-Notation Analyse von Algorithmen Die O-Notation Prof. Dr. Margarita Esponda Freie Universität Berlin ALP II: Margarita Esponda, 5. Vorlesung, 26.4.2012 1 Die O-Notation Analyse von Algorithmen Korrektheit
MehrFunktionale Programmierung ALP I. Die Natur rekursiver Funktionen SS Prof. Dr. Margarita Esponda. Prof. Dr.
ALP I Die Natur rekursiver Funktionen SS 2011 Die Natur rekursiver Funktionen Rekursive Funktionen haben oft folgende allgemeine Form: f :: a -> a f 0 = c f (n+1) = h (f n ) Diese Art der Definitionen
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
MehrFunktionale Programmierung ALP I. Funktionen höherer Ordnung. Teil 2 SS 2013. Prof. Dr. Margarita Esponda. Prof. Dr.
ALP I Funktionen höherer Ordnung Teil 2 SS 2013 Funktionen höherer Ordnung Nehmen wir an, wir möchten alle Zahlen innerhalb einer Liste miteinander addieren addall:: (Num a) => [a -> a addall [ = 0 addall
MehrALP I. Funktionale Programmierung
ALP I Funktionale Programmierung Sortieren und Suchen (Teil 1) WS 2012/2013 Suchen 8 False unsortiert 21 4 16 7 19 11 12 7 1 5 27 3 8 False sortiert 2 4 6 7 9 11 12 18 21 24 27 36 Suchen in unsortierten
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
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
MehrProf. Dr. Margarita Esponda
Algorithmen und Programmieren II Sortieralgorithmen imperativ Teil I Prof. Dr. Margarita Esponda Freie Universität Berlin Sortieralgorithmen Bubble-Sort Insert-Sort Selection-Sort Vergleichsalgorithmen
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,
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
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
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
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Rekursion
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Rekursion Rekursion Neue Denkweise Wikipedia: Als Rekursion bezeichnet man den Aufruf
Mehr2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.
2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum
Mehr2. Effizienz von Algorithmen
Effizienz von Algorithmen 2. Effizienz von Algorithmen Effizienz von Algorithmen, Random Access Machine Modell, Funktionenwachstum, Asymptotik [Cormen et al, Kap. 2.2,3,4.2-4.4 Ottman/Widmayer, Kap. 1.1]
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Ziel Angabe der Effizienz eines Algorithmus unabhängig von Rechner, Programmiersprache, Compiler. Page 1 Eingabegröße n n Integer, charakterisiert die Größe einer Eingabe, die
Mehr2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben
Algorithmen und Algorithmisierung von Aufgaben 2-1 Algorithmisierung: Formulierung (Entwicklung, Wahl) der Algorithmen + symbolische Darstellung von Algorithmen Formalismen für die symbolische Darstellung
MehrKomplexität von Algorithmen OOPM, Ralf Lämmel
Ganz schön komplex! Komplexität von Algorithmen OOPM, Ralf Lämmel 885 Motivierendes Beispiel Algorithmus Eingabe: ein Zahlen-Feld a der Länge n Ausgabe: Durchschnitt Fragen: sum = 0; i = 0; while (i
MehrKapitel 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
MehrAbgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
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,
MehrGrundlagen der Programmierung 2. Sortierverfahren
Grundlagen der Programmierung 2 Sortierverfahren Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 30. Mai 2006 Sortieren Ziel: Bringe Folge von Objekten in eine Reihenfolge
Mehr3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen
3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen Sortierproblem Eingabe: Folge von n natürlichen Zahlen a 1, a 2,, a n, die Folge
MehrLösungsvorschlag Serie 2 Rekursion
(/) Lösungsvorschlag Serie Rekursion. Algorithmen-Paradigmen Es gibt verschiedene Algorithmen-Paradigmen, also grundsätzliche Arten, wie man einen Algorithmus formulieren kann. Im funktionalen Paradigma
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
MehrKomplexität. G. Zachmann Clausthal University, Germany Leistungsverhalten von Algorithmen
lausthal Informatik II Komplexität von Algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer
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:
MehrDie Korrektheit von Mergesort
Die Korrektheit von Mergesort Christoph Lüth 11. November 2002 Definition von Mergesort Die Funktion Mergesort ist wie folgt definiert: msort :: [Int]-> [Int] msort xs length xs
MehrProgrammiertechnik 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Ü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
MehrKapitel 3 Zur Korrektheit und Effizienz von Algorithmen
Kapitel 3 Zur Korrektheit und Effizienz von Algorithmen Ziel: Kurze Einführung in den Pseudocode zur Beschreibung von Algorithmen Induktionsbeweise als wichtiges Hilfsmittel, um die Korrektheit eines Algorithmus
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:
Mehr2 Wachstumsverhalten von Funktionen
Algorithmen und Datenstrukturen 40 2 Wachstumsverhalten von Funktionen Beim Vergleich der Worst-Case-Laufzeiten von Algorithmen in Abhängigkeit von der Größe n der Eingabedaten ist oft nur deren Verhalten
Mehr1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen
Gliederung 1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen 1/1, Folie 1 2009 Prof. Steffen Lange - HDa/FbI - Effiziente
MehrAlgorithmen und Datenstrukturen 1-1. Seminar -
Algorithmen und Datenstrukturen 1-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Inhalt der ersten beiden Vorlesungen Algorithmenbegriff Komplexität, Asymptotik
Mehr( )= c+t(n-1) n>1. Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften Ziel: Methoden kennen
MehrGrundlagen: Algorithmen und Datenstrukturen
Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Übungsblatt 1 16. September 2011 Grundlagen: Algorithmen und
MehrAlle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).
8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame
MehrLaufzeit 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
MehrInformatik I Komplexität von Algorithmen
Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Leistungsverhalten von Algorithmen Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz
MehrStand der Vorlesung Komplexität von Algorithmen (Kapitel 3)
Stand der Vorlesung Komplexität von Algorithmen (Kapitel 3) Technische Universität München Motivation: IT gestützte Steuerung, Überwachung, Fertigung, Produktion,. : erfordert effiziente Berechnungsvorschriften
MehrKostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)
Kostenmodell Daniel Graf, Tobias Pröger 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch
MehrPraktische Informatik I - Algorithmen und Datenstrukturen Wintersemester 2006/ Algorithmen und ihre formalen Eigenschaften, Datenstrukturen
1 Grundlagen 1.1 Algorithmen und ihre formalen Eigenschaften, Datenstrukturen Ein Algorithmus ist ein mit formalen Mitteln beschreibbares, mechanisch nachvollziehbares Verfahren zur Lösung einer Klasse
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
MehrInformatik I Komplexität von Algorithmen
Leistungsverhalten von Algorithmen Informatik I Komplexität von Algorithmen G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Speicherplatzkomplexität: Wird primärer & sekundärer Speicherplatz
Mehr11. Rekursion, Komplexität von Algorithmen
11. Rekursion, Komplexität von Algorithmen Teil 2 Java-Beispiele: Power1.java Hanoi.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 23. Nov. 2015 Anwendung der Rekursion Rekursiv
MehrMaster-Veranstaltung Funktionale Programmierung. Effizienz. Wintersemester 2007/2008 Kim Kirchbach (Inf6310) Mirco Schenkel (Inf6311)
Master-Veranstaltung Funktionale Programmierung Effizienz Wintersemester 2007/2008 Kim Kirchbach (Inf6310) Mirco Schenkel (Inf6311) Inhalt Lazy Evaluation Komplexität Parameterakkumulation Tupling Speicherplatz
MehrInformatik II. Vorlesung am D-BAUG der ETH Zürich. Felix Friedrich & Hermann Lehner FS 2018
1 Informatik II Vorlesung am D-BAUG der ETH Zürich Felix Friedrich & Hermann Lehner FS 2018 23 1. Einführung Algorithmen und Datenstrukturen, erstes Beispiel 24 Ziele der Vorlesung Verständnis des Entwurfs
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
MehrIsomorphismus. Definition Gruppen-Isomorphismus. Seien (G, +) und (G, ) Gruppen. Die Abbildung f : G G heißt Gruppen-Isomorphismus, falls gilt
Isomorphismus Definition Gruppen-Isomorphismus Seien (G, +) und (G, ) Gruppen. Die Abbildung f : G G heißt Gruppen-Isomorphismus, falls gilt 1 f ist bijektiv f (u + v) = f (u) f (v) für alle u, v G, die
MehrSortieren durch Einfügen (Insertion Sort) fügt die restlichen Elemente nach und nach in die bereits sortierte Liste der abgearbeiteten Zahlen.
Kapitel 6 Sortieren 6.1 Sortiermethoden Die Sortierung von Mengen von Datensätzen ist eine häufige algorithmische Operation auf Mengen bzw. Folgen von gleichartigen Datenobjekten (insbesondere in der betriebswirtschaftlichen
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Mathematische Grundlagen
Mehrlim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Aufgabe 1 (O-Notation): Beweisen oder widerlegen Sie die folgenden Aussagen: (3 + 3 + 4 = 10 Punkte)
Mehr2.2 Allgemeine (vergleichsbasierte) Sortierverfahren
. Allgemeine (vergleichsbasierte) Sortierverfahren Vergleichsbaum: Der Aufbau des Verbleichsbaum ist für jeden Algorithmus und jede Eingabelänge n gleich. Jede Permutation der Eingabe, muss zu einem anderen
MehrWS 2011/2012. RobertGiegerich. November 12, 2013
WS 2011/2012 Robert AG Praktische Informatik November 12, 2013 Haskell-Syntax: Ergänzungen Es gibt noch etwas bequeme Notation für Fallunterscheidungen, die wir bisher nicht benutzt haben. Bisher kennen
MehrEinführung in die Informatik I
Einführung in die Informatik I Fortgeschrittene Rekursion Prof. Dr. Nikolaus Wulff Problematische Rekursion Mittels Rekursion lassen sich Spezifikationen recht elegant und einfach implementieren. Leider
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
Mehr2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017
2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel
MehrWS 2011/2012. RobertGiegerich. November 12, 2013
WS 2011/2012 Robert AG Praktische Informatik November 12, 2013 Haskell-Syntax: Ergänzungen Es gibt noch etwas bequeme Notation für Fallunterscheidungen, die wir bisher nicht benutzt haben. Bisher kennen
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
MehrALP I Induktion und Rekursion
ALP I Induktion und Rekursion WS 2012/2013 Vollständige Induktion (Mafi I) Die Vollständige Induktion ist eine mathematische Beweistechnik, die auf die Menge der natürlichen Zahlen spezialisiert ist. Vorgehensweise:
MehrInformatik II. Algorithmen und Datenstrukturen. Vorläufige Version 1 c 2002 Peter Thiemann
Informatik II Algorithmen und Datenstrukturen Vorläufige Version 1 c 2002 Peter Thiemann 1 Einführung 1.1 Inhalt Wichtige Datentypen und ihre Implementierung (Datenstrukturen) Operationen auf Datenstrukturen
MehrAlgorithmen und Datenstrukturen 1 Kapitel 4
Algorithmen und Datenstrukturen 1 Kapitel 4 Technische Fakultät stoye@techfak.uni-bielefeld.de 4.1 Asymptotische Notationen Wir betrachten das Polynom p(x) = 2x 3 + 1000x 2 5x + 12 Für große x gilt: der
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
MehrDatenstrukturen & 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
MehrExponentiation: das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element
Problemstellung Banale smethode : das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element a n = } a a a {{ a } H n (schreiben ab jetzt a n statt a n ) Hinweis:
MehrInformatik II. 1. Einführung. Ziele der Vorlesung. Inhalte der Vorlesung. Vorlesung am D-BAUG der ETH Zürich
Informatik II Vorlesung am D-BAUG der ETH Zürich 1. Einführung Felix Friedrich & Hermann Lehner Algorithmen und Datenstrukturen, erstes Beispiel FS 2018 1 23 Ziele der Vorlesung Inhalte der Vorlesung Verständnis
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:
Mehr4 Effizienz und Komplexität 3.1 1
4 Effizienz und Komplexität 3.1 1 Effizienz (efficiency): auf den Ressourcen-Verbrauch bezogene Programmeigenschaft: hohe Effizienz bedeutet geringen Aufwand an Ressourcen. Typische Beispiele: Speichereffizienz
MehrGrundlagen der Programmierung
GdP12 Slide 1 Grundlagen der Programmierung Vorlesung 12 Sebastian Iwanowski FH Wedel GdP12 Slide 2 Entwurf von Algorithmen Wie klassifiziert man Algorithmen? offensichtlich nicht durch die Unterscheidung
MehrAlgorithmik Übung 2 Prof. Dr. Heiner Klocke Winter 11/
Algorithmik Übung 2 Prof. Dr. Heiner Klocke Winter 11/12 23.10.2011 Themen: Asymptotische Laufzeit von Algorithmen Experimentelle Analyse von Algorithmen Aufgabe 1 ( Asymptotische Laufzeit ) Erklären Sie,
MehrTypdeklarationen. Es gibt in Haskell bereits primitive Typen:
Typdeklarationen Es gibt in bereits primitive Typen: Integer: ganze Zahlen, z.b. 1289736781236 Int: ganze Zahlen mit Computerarithmetik, z.b. 123 Double: Fließkommazahlen, z.b. 3.14159 String: Zeichenketten,
MehrINFORMATIK FÜR BIOLOGEN
Technische Universität Dresden 15012015 Institut für Theoretische Informatik Professur für Automatentheorie INFORMATIK FÜR BIOLOGEN Musterklausur WS 2014/15 Studiengang Biologie und Molekulare Biotechnologie
MehrDatenstrukturen, Algorithmen und Programmierung 2
Datenstrukturen, Algorithmen und Programmierung 2 Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 2. VO SS 2009 16. April 2009 1 Überblick Asymptotische Schranken
MehrGrundlagen der Programmierung 2 (1.B)
Grundlagen der Programmierung 2 (1.B) Prof. Dr. Manfred Schmidt-Schauß Künstliche Intelligenz und Softwaretechnologie 20. April 2011 Aufrufhierarchie und Rekursive Definitionen f, g, f i seien Haskell-definierte
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
MehrÜbung Algorithmen I
Übung Algorithmen I 20.5.15 Christoph Striecks Christoph.Striecks@kit.edu (Mit Folien von Julian Arz, Timo Bingmann und Sebastian Schlag.) Roadmap Organisation Mergesort, Quicksort Dual Pivot Quicksort
Mehres gibt Probleme, die nicht berechenbar sind (z.b. Menge aller Funktionen N N und die Menge aller Sprachen sind überabzählbar)
Komplexitätstheorie es gibt Probleme, die nicht berechenbar sind (z.b. Menge aller Funktionen N N und die Menge aller Sprachen sind überabzählbar) andere Probleme sind im Prinzip berechenbar, möglicherweise
MehrProgrammierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2012/13) Lösungsblatt 10 (Kapitel 11) Hinweis: Dieses Übungsblatt enthält
MehrEinführung in die Funktionale Programmierung mit Haskell
Einführung in die Funktionale Programmierung mit Haskell Rekursion LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 25. April 2013 Planung Achtung: Nächste
MehrTutoraufgabe 1 (Auswertungsstrategie):
Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Auswertungsstrategie): Gegeben sei das folgende Haskell-Programm: absteigend :: Int - > [ Int
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6. November 2014 (O-Notation, Theta, Omega) Junior-Prof. Dr. Olaf Ronneberger
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Algorithmen und Datenstrukturen Teil 3 Suchen in Listen Version vom: 15. November 2016
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
MehrÜbungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:
Übungsblatt 1 Aufgabe 1.1 Beweisen oder widerlegen Sie, dass für die im Folgenden definierte Funktion f(n) die Beziehung f(n) = Θ(n 4 ) gilt. Beachten Sie, dass zu einem vollständigen Beweis gegebenenfalls
MehrWas bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):
Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel
MehrAlgorithmen und Datenstrukturen Heapsort
Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das
MehrAlgorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität)
Über-/Rückblick Algorithmenbegriff: Berechenbarkeit Turing-Maschine RAM µ-rekursive Funktionen Zeit Platz Komplexität Algorithmentechniken Algorithmenanalyse (Berechnung der Komplexität) Rekursion Iteration
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
Mehr8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften
Heapsort, Quicksort, Mergesort 8. Sortieren II 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 9 210 Heapsort [Max-]Heap 6 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum mit
MehrGrundlagen der Programmierung 2 (1.B)
Grundlagen der Programmierung 2 (1.B) Prof. Dr. Manfred Schmidt-Schauß Künstliche Intelligenz und Softwaretechnologie 27. April 2012 Beispiel: Aufrufhierarchie quadrat x = x*x quadratsumme x y = (quadrat
Mehr5. Übungsblatt zu Algorithmen II im WS 2017/2018
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders Dr. Thomas Worsch, Dr. Simon Gog Demian Hespe, Yaroslav Akhremstev 5. Übungsblatt zu Algorithmen II im WS
MehrFunktionale Programmierung mit Haskell
Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 5 Asymptotische Laufzeitkomplexität Definition Regeln Beispiele Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger
MehrKapitel 5: Paradigmen des Algorithmenentwurfs. 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
MehrGliederung. Algorithmen und Datenstrukturen I. Listen in Haskell: Listen in Haskell: Listen in Haskell. Datentyp Liste Strings Listenkomprehension
Gliederung Algorithmen und Datenstrukturen I D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Winter 2009/10, 16. Oktober 2009, c
Mehr4. Sortieren 4.1 Vorbemerkungen
. Seite 1/21 4. Sortieren 4.1 Vorbemerkungen allgemeines Sortierproblem spezielle Sortierprobleme Ordne a 1,..., a n so um, dass Elemente in aufsteigender Reihenfolge stehen. Die a i stammen aus vollständig
MehrAchtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass
Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass f O g und auch g O f. Wähle zum Beispiel und G. Zachmann Informatik
MehrAlgorithmen und Datenstrukturen Laufzeitabschätzung
Algorithmen und Datenstrukturen Laufzeitabschätzung Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Lernziele der Vorlesung Algorithmen Sortieren, Suchen,
Mehr