12. September 2012 Kompexität. Analyse von Algorithmen (Ziele) Empirische Analyse Beispiel Schlussfolgerungen
|
|
- Carl Graf
- vor 7 Jahren
- Abrufe
Transkript
1 Komplexität von Algorithmen Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 12. September 2012 ODE/FHTBM Komplexität von Algorithmen 12. September /41 (Ziele) (Ziele) Effizienzbetrachtungen für grundlegende Algorithmen Gründe für eine (mathematische) verschiedene Algorithmen für eine Aufgabe vergleichen ihre Effizienz systemunabhängig vorhersagen die Werte von Algorithmus-Parametern setzen Es gibt mathematische Formeln, mit denen sich Maße für Algorithmen und ihre Güte bzgl. Effizienz vorhersagen lassen. Wir unterscheiden zwei Strategien für die Effizienzbetrachtung emprisiche Analyse Komplexitätsklassen ODE/FHTBM Komplexität von Algorithmen 12. September /41 (Ziele) Eigenschaften von Algorithmen - Algorithmus-Analyse Wie ermitteln Sie die Eigenschaften von Algorithmen? Prüfen Sie die Operationen auf den Daten Prüfen Sie die Eingabedaten Wie bestimmen wir die Effizienz von Algorithmen? Wir benutzen folgende Methoden für bestehende Implementierungen Implementierung und empirische Analyse Algorithmen-Analyse vor der Implementierung zur Beschreibung von Komplexitätsklassen Groß-Oh Notation und O-Notation Garantien, Vorhersagen, Grenzen ODE/FHTBM Komplexität von Algorithmen 12. September /41 1
2 (Ziele) Implementierung und empirische Analyse Algorithmen als Berechnungsverfahren werden entworfen, indem wir Operationen auf (Daten-)Strukturen betrachten oder (Daten-)Strukturen wählen, von denen wir wissen, dass gewisse Operationen schnell angewendet werden können. Um eine gute Implementierung, z.b. in Java, zu finden, müssen wir immer abwechselnd diese Ansätze betrachten und gegeneinander abwägen. Somit kann es üblich sein mit einer bestehenden Implementierung (aus der Java Programmbibliothek) zu starten. Wir können von einer konkreten Implementierung lernen. ODE/FHTBM Komplexität von Algorithmen 12. September /41 Empirische Analyse (Ziele) Wir beginnen mit einer bestehenden Implementierung. Was lässt sich durch eine empirische Analyse herausfinden? Was liefert uns eine Betrachtung der tatsächlichen Laufzeit? Nehmen Sie zwei Algorithmen an, die das selbe Problem lösen sollen. Wir starten beide, um festzustellen, welcher länger braucht! Dass ein Algorithmus zehnmal so schnell wie der andere ist, fällt wohl jeder oder jedem auf, die 3 Sekunden auf den einen und 30 Sekunden auf den anderen warten; Stimmt ein solcher Testlauf für alle möglichen Eingaben der beiden folgenden Algorithmen? Beispiel: Summation einer endlichen Zahlenfolge ODE/FHTBM Komplexität von Algorithmen 12. September /41 (Ziele) Summation einer endlichen Zahlenfolge (nicht im Buch) 1. Implementierung public int Ga ussian SumSim ple ( int n) { int sum =0; for ( int i = n; n > 0; i - -) { sum = sum + i; return sum ; Für N = 30 werden beim Schleifendurchlauf 30 Additionen ausgeführt. Für N = 300 werden beim Schleifendurchlauf 300 Additionen ausgeführt, also das 10-fache. Gleich soviel als das Wachstum von N. ODE/FHTBM Komplexität von Algorithmen 12. September /41 2
3 (2) (Ziele) Summation einer endlichen Zahlenfolge (nicht im Buch) zweite Implementierung public int GaussianSum ( int n) { int sum = 0.5* n*(n +1); return sum ; Für eine feste Anzahl z.b. N = 30: N = 30 sum = (30 + 1) = 1860 Eine Addition und zwei Multiplikationen werden gebraucht. Wenn N = 300 sum = ( ) = Eine Addition und zwei Multiplikationen werden gebraucht. Die Anzahl gebrauchte Operationen ist unabhängig vom Wert N. ODE/FHTBM Komplexität von Algorithmen 12. September /41 (Ziele) Zusammenfassung Beispiel Summation Summation einer endliche Zahlenfolge In der ersten Implementierung haben wir einen Aufwand in Relation zur Größe der Eingabe; d.h. der Aufwand wird höher umso größer N ist. Der Aufwand wächst linear. In der zweiten Implementierung ist der Berechnungsaufwand unabhängig von der Eingabegröße N. Wir sagen der Aufwand ist konstant. Offensichtlich kann die Laufzeit von der Eingabe abhängen. Nicht immer ist es möglich diese Abhängigkeit auszuschließen, aber es ist immer einen Versuch wert. Überlegen Sie, was passiert bei festen N. ODE/FHTBM Komplexität von Algorithmen 12. September /41 Empirische Analyse (Ziele) Empirische Studien nehmen viel Zeit in Anspruch. Bevor wir sie vergleichen können, müssen wir die Algorithmen implementiert haben. Es kann dann Minuten, Stunden oder Tage dauern, bis wir das gewünschte Ergebnis haben. Untersuchung der Eingabedaten Drei Auswahlmöglichkeiten reale Daten Zufallsdaten pervertierte Daten ODE/FHTBM Komplexität von Algorithmen 12. September /41 3
4 Empirische Analyse (Ziele) Reale Daten erlauben uns eine Laufzeitmessung des verwendeten Programms (in seinem SW-System). Zufallsdaten sorgen dafür, dass unsere Experimente die Algorithmen testen, nicht die Daten. Pervertierte Daten stellen sicher, dass unser Programm mit beliebigen Eingaben fertig wird. ODE/FHTBM Komplexität von Algorithmen 12. September /41 Kritik an der empirischen Analyse (Ziele) Verschiedene Faktoren entziehen sich dem Einfluss der Programmierenden, z.b. Programmier-Umgebungen, zb. für Java oder.net Java Programme werden in Byte-Code, und dieser Byte-Code wird auf einer virtuellen Maschine (VM) in Ablauf-Code übersetzt. Sowohl der Compiler (Übersetzer) als auch die VM-Implementierungen wirken sich darauf aus, wie die tatsächliche Maschine die Anweisungen ausführt. Kompiler-Optionen bieten Möglichkeiten diesen Prozess zu beeinflussen. Eingabedaten Viele Programme werden stark von den Eingabedaten beeinflusst und ihre Laufzeit kann abhängig von der Eingabe - stark schwanken. Programme (oder Implementierungen) sind schwer verständlich. ODE/FHTBM Komplexität von Algorithmen 12. September /41 (Ziele) Empirische Analyse () Empirische Tests können wir nicht für ein Programm durchführen, das noch nicht geschrieben und mit [Massen-] Eingabedaten gestartet worden ist, aber wir können Eigenschaften des Programms analysieren und die potenzielle Wirksamkeit von Verbesserungen abschätzen. Wir können in unseren Implementierungen bestimmte Parameter verwenden und die Analyse dazu nutzen, uns beim Setzen der Parameter zu helfen. Ziel: wenn wir die grundlegenden Eigenschaften unserer Programme verstehen und im Prinzip wissen, wie die Programme Ressourcen nutzen, können wir potenziell auch bewerten, wie effektiv sie auf noch nicht gebauten Computern sein werden. Wir können sie auch mit Algorithmen vergleichen, die noch nicht entworfen worden sind. ODE/FHTBM Komplexität von Algorithmen 12. September /41 4
5 Wie führen Sie diese durch? Bei der Analyse eines Algorithmus müssen Sie die Operationen identifizieren. Es kann eine große Anzahl von Operationen geben. Grundsätzlich hängt die Leistung von Algorithmen aber nur von wenigen Größen ab, die leicht zu erkennen sind, indem Sie beispielsweise ein Profil anlegen (die Anzahl der Anweisungen zählen). ODE/FHTBM Komplexität von Algorithmen 12. September /41 Für eine Analyse des ungünstigsten Falls ermitteln Sie die Laufzeit-Komplexität (Obergrenze abhängig von dem gewählten Eingabeparameter N) oder Speicherplatz-Komplexität (Obergrenze abhängig von der Nutzung des Speicherplatzes). Beachten Sie, dass sich die Ergebnisse von Laufzeit-Komplexität in Speicherplatz-Komplexität umwandeln lassen, und von Speicherplatz-Komplexität in Laufzeit-Komplexität. Diese Messungen von Komplexität lassen sich als Wachstum der Funktionen zeigen, wobei Sie Groß-Oh Notation verwenden. ODE/FHTBM Komplexität von Algorithmen 12. September /41 Eigenschaften von Algorithmen Fehlerfreiheit Invarianten von Schleifen Methoden-Invarianz Wie Sie effiziente Algorithmen bestimmen Speicherplatz-Komplexität Laufzeit-Komplexität gemeinsame Kostenmaße bester Fall, ungünstigster Fall, durchschnittlicher Fall ODE/FHTBM Komplexität von Algorithmen 12. September /41 5
6 Ein typische mathematische Funktion wird benutzt zur Anzeige der Komplexität eines Algorithmus. Die meisten Algorithmen haben einen primären Parameter N, der die Laufzeit am stärksten beeinflusst. Parameter N könnte sein Grad der Polynomialität, Größe der Datei, die sortiert oder durchsucht werden soll, Anzahl Zeichen in der Zeichenkette, oder andere Maßeinheit für die Größe des Problems, das untersucht wird. Häufig ist es direkt proportional zur Größe der Datenmenge, die verarbeitet wird. Damit verwenden wir ein vereinfachtes Modell, in dem wir uns darauf beschränken, nur den einen Parameter N zu betrachten. ODE/FHTBM Komplexität von Algorithmen 12. September /41 Wir wollen die Anforderungen an die Ressource (Laufzeit oder Speicherplatz) durch N ausdrücken und dabei mathematische Formeln verwenden, die für große Parameterwerte korrekt sind (um dadurch das Implementierungsproblem und das Problem der Massen-Eingabedaten zu überwinden). Algorithmen bewirken typischerweise eine Laufzeit-Komplexität in Abhängigkeit von den folgenden Funktionen, siehe die folgenden Folien. Beachten Sie, dass wir damit eine Klassifikation für alle Algorithmen erhalten. ODE/FHTBM Komplexität von Algorithmen 12. September /41 // return number of distinct triples (i, j, k) // such that a[ i] + a[ j] + a[ k] = 0 public static int count ( int [] a) { int N = a. length ; int cnt = 0; for ( int i = 0; i < N; i ++) { for ( int j = i +1; j < N; j ++) { // N=N^1 for ( int k = j +1; k < N; k ++) { // (N ^2)/2 if (a[i] + a[j] + a[k] == 0) { // {N ^3/6 cnt ++; return cnt ; ODE/FHTBM Komplexität von Algorithmen 12. September /41 6
7 Abbildung: : 1, log(x), x, x log(x), x 2, x 3,.. ODE/FHTBM Komplexität von Algorithmen 12. September /41 : 1 Konstante Laufzeit Die meisten Anweisungen der meisten Programme werden nur ein oder höchstens einige wenige Male ausgeführt. Wenn das für alle Anweisungen eines Programms zutrifft, sagen wir, dass das Programm eine konstante Laufzeit hat. Zum Beispiel: Verdopplung der Eingabelänge hat fast kein Einfluss auf die Laufzeit. ODE/FHTBM Komplexität von Algorithmen 12. September /41 : logn Logarithmische Laufzeit Wenn die Laufzeit eines Programms logarithmisch ist, wird das Programm geringfügig langsamer, wenn N größer wird. Dieser Laufzeit-Effekt tritt üblicherweise in Programmen auf, die ein großes Problem dadurch lösen, dass sie es in eine Reihe kleinerer Probleme umwandeln, wobei sie die Größe des Problems in jedem Schritt um einen konstanten Faktor verringern. Zum Beispiel: Verdopplung vermehrt die Laufzeit mit ein konstanter Beitrag. In dem Bereich, der uns interessiert, können wir die Laufzeit als kleiner als eine große Konstante betrachten. Die Basis des Logarithmus verändert die Konstante, allerdings nicht stark. ODE/FHTBM Komplexität von Algorithmen 12. September /41 7
8 : N Lineare Laufzeit Wenn die Laufzeit eines Programms linear ist, bedeutet das im Allgemeinen, dass jedes Element der Eingabe nur wenig bearbeitet wird. Diese Situation ist optimal für einen Algorithmus, der N Eingaben bearbeiten muss (oder Prozedur N Ausgaben). ODE/FHTBM Komplexität von Algorithmen 12. September /41 : NlogN NlogN Laufzeit Die NlogN Laufzeit entsteht, wenn Algorithmen ein Problem lösen, indem sie es in kleinere Subprobleme zerlegen, die unabhängig gelöst werden, um dann die Lösungen zu kombinieren. Wenn sich N verdoppelt, wird die Laufzeit etwas (aber nicht viel) mehr als verdoppelt. ODE/FHTBM Komplexität von Algorithmen 12. September /41 : N 2 und N 3 N 2 Wenn die Laufzeit eines Algorithmus quadratisch ist, eignet sich dieser Algorithmus in der Praxis nur für relativ kleine Probleme. Quadratische Laufzeiten entstehen typischerweise bei Algorithmen, die Paare von Datenelementen verarbeiten (möglicherweise in einer doppelt verschachtelten Schleife) N 3 Analog hat ein Algorithmus, der Tripels von Datenelementen verarbeitet (möglicherweise in einer dreifach verschachtelten Schleife) eine kubische Laufzeit. Verdoppelt sich N, so verachtfacht sich die Laufzeit. ODE/FHTBM Komplexität von Algorithmen 12. September /41 8
9 : 2 N Es gibt nur wenige Algorithmen mit exponentieller Laufzeit, die sich für die Praxis eignen. Solche Algorithmen sind aber das natürliche Ergebnis von brute-force Lösungen für Probleme. Wenn sich N verdoppelt, wächst die Laufzeit im Quadrat! 2 (2 N) = (2 N ) 2 ODE/FHTBM Komplexität von Algorithmen 12. September /41 Werte von übliche Funktionen lgn N N NlgN N(lgN) 2 N 3/2 N ODE/FHTBM Komplexität von Algorithmen 12. September /41 : Spezielle Funktionen Funktion Beschreibung Beispiel Annäherung für große Werte x Bodenfunktion 3.14 = 3 x x Deckefunktion 3.14 = 4 x lgn Binärer Logarithmus lg(1024) = ln(N) F N Fibonacci Zahlen F 10 = 55 φ N / 5 H N Harmonische Zahlen (Summe) sum = ln(n) + γ N! Fakultät-funktion 10! = (N/e) N lg(n!) lg(10!) 520 Nlg(N) 1.44N ODE/FHTBM Komplexität von Algorithmen 12. September /41 9
10 : Spezielle Konstanten Constant Value e = γ = φ = (1 + 5)/2 = ln(2) = lg(e) = 1/ln(2) = ODE/FHTBM Komplexität von Algorithmen 12. September /41 von f(n) Einige Vorüberlegungen Mit die Effizienz von Algorithmen vergleichen In den meisten Fällen entscheidet sich die Effizienz von Algorithmen damit, wie die (mathematischen) Operationen auf einer Datenstruktur implementiert sind. Andererseits beeinflusst aber auch die ausgewählte, zu Grunde liegende Datenstruktur die Effizienz. Algorithmen können also schneller werden, wenn wir die Datenstruktur ändern. Was bedeutet schnell oder langsam? ODE/FHTBM Komplexität von Algorithmen 12. September /41 von f(n) von f(n) Zur Begrenzung des Fehlers, den wir machen, wenn wir kleine Ausdrücke in Formeln ignorieren Zur Begrenzung des Fehlers, den wir machen, wenn wir die Teile eines Programms ignorieren, die nur wenig zu dem Ganzen beitragen, das wir analysieren Um uns Algorithmen anhand der Obergrenzen ihrer Gesamtlaufzeit klassifizieren zu lassen schnell und langsam lassen sich ermitteln, dargestellt durch O-Notation: O(f (N)) - Groß-Oh von f (N) Die O-Notation beschreibt die Relation ist proportional zu. Wie erwähnt, ist die Untersuchung der Eingabe eine asymptotische Herangehensweise an den ungünstigsten Fall. ODE/FHTBM Komplexität von Algorithmen 12. September /41 10
11 von f(n) Wachstum von Funktionen: Verhalten für großes N f (N) f (N) = N 2 f (N) = Nlog(N) N ODE/FHTBM Komplexität von Algorithmen 12. September /41 von f(n) O-Notation: O(f (N)) - Groß-Oh von f (N) O(f (N)) - Groß-Oh von f (N) Grob gesagt: Die Menge der Funktionen, die nicht schneller als konstante f (N)-Mal zunehmen, wenn N groß wird. Dabei ist N die (Größe oder Länge der) Eingabe(-Daten). Präzise ausgedrückt: Die Menge der Funktionen g(n) : N R wird als O(f (N)) bezeichnet, wenn für jedes g(n) die Konstanten c 0 R + und N 0 N existieren, so dass zutrifft: g(n) c 0 f (N) für alle N > N 0 Tücke: Zwar würden wir einen Algorithmus, der N 2 Nanosekunden braucht, einem vorziehen, der mehr als logn Jahrhunderte braucht, aber diese Entscheidung könnten wir nicht auf der Basis von O-Notation treffen. ODE/FHTBM Komplexität von Algorithmen 12. September /41 von f(n) Grundsätzlich können wir Ausdrücke erweitern, indem wir O-Notation so verwenden, als wäre das O nicht vorhanden, und dann bis auf den größten Ausdruck alle fallen lassen. Wenn wir beispielsweise diesen Ausdruck erweitern: (O(N) + O(1))(O(N) + O(logN) + O(1)) erhalten wir sechs Summanden O(N 2 ) + O(NlogN) + O(N) + O(N) + O(logN) + O(1) ODE/FHTBM Komplexität von Algorithmen 12. September /41 11
12 von f(n) Wir können alle O-Ausdrücke bis auf die größten fallen lassen, womit die Annäherung bleibt: O(N 2 ) + O(NlogN). O(N 2 ) ist eine gute Annäherung an diesen Ausdruck, wenn N groß ist. Diese Formel mit einem O-Ausdruck bezeichnen wir als einen asymptotischen Ausdruck. ODE/FHTBM Komplexität von Algorithmen 12. September /41 von f(n) g(n) = 3N N logN O(N 3 ) g(n) = 3N N logN O(N 4 ) g(n) = g(n) = { 5N, N N 2, N > { N 2, N N, N > enthält auch: O(N 2 ) O(N) ODE/FHTBM Komplexität von Algorithmen 12. September /41 Beispiel: Das Sieb des Eratosthenes von f(n) class Primes { public static void main ( String [] args ) { int N = integer. parseint ( args [0]); boolean [] a = new boolean [ N]; for ( int i = 2; i < N; i ++) a[ i] = true ; for ( int i = 2; i < N; i ++) if ( a[ i]!= false ) for ( int j = i, i* j < N; j ++) a[i*j] = false ; for ( int i = 2; i < N; i ++ ) if ( i > N ) if (a[i]) System. out. println (" " + i); System. out. println (); ODE/FHTBM Komplexität von Algorithmen 12. September /41 12
13 von f(n) Das Sieb des Eratosthenes - Komplexität In der Implementierung gibt es vier Schleifen, von denen drei sequenziell auf die Array-Elemente zugreifen, vom Beginn zum Ende. Die sequenzielle Verarbeitung ist entscheidend. Wir könnten die erste Schleife folgendermaßen ändern: for(i = N-1; i > 1; i--) a[i] = true; Diese Änderung hat total kein Effekt! In einer Analyse der Laufzeit ist das proportional zu N + N/2 + N/3 + N/5 + N/7 + N/ das kleiner ist als N + N/2 + N/3 + N/ Die erste N Summanden dieser Folge: N (1 + 1/2 + 1/3 + 1/ /N) = N H N = O(N logn) H N : harmonic numbers sum ODE/FHTBM Komplexität von Algorithmen 12. September /41 von f(n) Wir haben zwei Methoden untersucht, um Algorithmen zu analysieren Empirische Analyse Komplexitätsklassen ODE/FHTBM Komplexität von Algorithmen 12. September /41 von f(n) Zusammenfassung - Empirische Analyse Implementierung muss existieren. (Massen-)Daten müssen vorhanden sein. Laufzeitmessungen, ggf. unter Berücksichtigung von Systemeinflüssen Schrittweise, möglicherweise sehr kostenintensive Verbesserungen durch Kenntnis von (Neben-)Bedingungen einer speziellen Anwendung Solche (Neben-)Bedingungen können im Einzelfall sehr schnelle Einzellösungen liefern. ODE/FHTBM Komplexität von Algorithmen 12. September /41 13
14 von f(n) sklassen Beim Entwurf eines Algorithmus Konzentration auf die möglichen Eingabedaten ggf. Restriktion auf einen Eingabeparameter und die langsamsten Programmteile Abschätzung des wesentlichen Eingabeparameters mittels Laufzeitkomplexität oder Speicherplatzkomplexität Bestimme eine Komplexitätsklasse, zu der ein Algorithmus gehört. Die Komplexität eines Algorithms gegeben durch die kleinste obere Schranke für Eingaben im schlechtesten Fall. Die kleinste obere Schranke ist gegeben durch das Wachstum einer mathematischen Funktion. ODE/FHTBM Komplexität von Algorithmen 12. September /41 von f(n) Jedes implementierte Programm hat eine Laufzeit. Die Komplexitätsanalyse liefert mit der kleinsten oberen Schranke die schnellste Laufzeit im schlechtesten Fall (oder den benötigten Speicherplatz) jedes Algorithmus bzgl. der mathematischen Operationen. Wir erhalten Kenntnis über die Komplexitätsanalyse die beste Lösung, die gleichzeitig eine absolute Grenze bildet. Die Programmlaufzeit eines implementierten muss nicht der Laufzeit entsprechen, die durch eine Komplexitätsklasse beschrieben wird. Wir wollen in diesem Kurs Algorithmen für die zumeist verwendeten Operationen die besten Algorithmen kennenlernen. ODE/FHTBM Komplexität von Algorithmen 12. September /41 14
Komplexitä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
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:
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
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:
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
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,
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
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,
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
MehrProf. Dr. Margarita Esponda
Analyse von Algorithmen Die O-Notation WS 2012/2013 Prof. Dr. Margarita Esponda Freie Universität Berlin 1 Korrekte und effiziente Lösung von Problemen Problem Wesentlicher Teil der Lösung eines Problems.
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
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
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,
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
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
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
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
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft
MehrAlgorithmen und Datenstrukturen SS Übungsblatt 1: Grundlagen
Ludwig-Maximilians-Universität München München, 16.04.2018 Institut für Informatik Prof. Dr. Thomas Seidl Anna Beer, Florian Richter Algorithmen und Datenstrukturen SS 2018 Übungsblatt 1: Grundlagen Tutorien:
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
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
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
MehrDatenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 4 Abgabe: Montag, 13.05.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes Gruppenmitglieds
MehrEinstieg in die Informatik mit Java
1 / 32 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 32 1 Überblick: was ist Effizienz? 2 Landau-Symbole 3 Eier im Korb 4
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
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
MehrÜbungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2013 PD Dr. Cyrill Stachniss Dr. Rainer Kümmerle Übungsblatt 13 Abgabe / Besprechung in Absprache
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
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
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
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
MehrSoftware Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Rekursion Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27 Motivation Beispiel: Fibonacci-Folge
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare
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
MehrInstitut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
MehrAbschnitt 11: Korrektheit von imperativen Programmen
Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961
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
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
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
MehrInformatik B von Adrian Neumann
Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000
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
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
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 2, Donnerstag 30.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 2, Donnerstag 30. Oktober 2014 (Laufzeitanalyse MinSort / HeapSort, Induktion) Junior-Prof.
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
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
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
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
MehrÜbersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.
Übersicht Datenstrukturen und Vorlesung 1: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/ Diese Präsentation verwendet
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
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
MehrVorkurs Informatik WiSe 16/17
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016
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
MehrAlgorithmen und Datenstrukturen 04
(17. Mai 2012) 1 Besprechung Blatt 3 Hinweise 2 Induktion Allgemeines Beispiele 3 Rekursion Lineare Rekursion und Endrekursion Entrekursivierung Weitere Rekursionstypen 4 O-Kalkül Allgemein Wichtige Formeln
MehrKomplexität von Algorithmen
Ziele 2 Komplexität von Algorithmen Zeit- und Speicherplatzbedarf einer Anweisung berechnen können Zeit- und Speicherplatzbedarf einer Methode berechnen können Martin Wirsing Unterschiede der Komplexität
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
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
MehrÜbungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2018 Prof. Dr. Wolfram Burgard Andreas Kuhner Daniel Büscher Übungsblatt 13 Abgabe / Besprechung
MehrVorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / Vorlesung 2, Donnerstag 31.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013 Vorlesung 2, Donnerstag 31. Oktober 2013 (Laufzeitanalyse MinSort / HeapSort, Induktion) Junior-Prof.
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
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)
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Anweisungen mit Variablen Wiederholung Deklaration
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
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
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
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
MehrTutoraufgabe 1 (Verifikation):
Prof. aa Dr. M. Müller C. Aschermann, J. Hensel, J. Protze, P. Reble Allgemeine Die Hausaufgaben sollen in Gruppen von je 3 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet werden.
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
MehrA6.1 Logarithmus. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. A6.1 Logarithmus. A6.2 Landau-Notation. A6.
Algorithmen und Datenstrukturen 8. März 2018 A6. Laufzeitanalyse: Logarithmus and Landau-Symbole Algorithmen und Datenstrukturen A6. Laufzeitanalyse: Logarithmus and Landau-Symbole Marcel Lüthi and Gabriele
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
MehrEin Seminarbericht von Johann Basnakowski
Ein Seminarbericht von Johann Basnakowski Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg Name: Johann Basnakowski
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
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Organisatorisches Vorlesung: Montag 11 13 Uhr Ulf Leser RUD 26, 0 115 Mittwoch 11 13 Uhr Ulf Leser RUD
MehrKapitel 2: Analyse der Laufzeit von Algorithmen Gliederung
Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Wiederholung: Validation Validation: nicht-formaler
MehrStacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012
, Queues & Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 19. September 2012 ODE/FHTBM, Queues & 19. September 2012 1/42 Datenstrukturen Elementare Datenstrukturen
MehrAlgorithmen und Datenstrukturen
Technische Universität München SoSe 2017 Fakultät für Informatik, I-16 Lösungsblatt 4 Dr. Stefanie Demirci 31. Mai 2017 Rüdiger Göbl, Mai Bui Algorithmen und Datenstrukturen Aufgabe 1 Komplexität Berechnung
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
MehrEffiziente Algorithmen mit Python. D. Komm, T. Kohn
Effiziente Algorithmen mit Python D. Komm, T. Kohn Copyright c 2017, ABZ, ETH Zürich http://www.abz.inf.ethz.ch/ Version vom 7. September 2017. Effiziente Algorithmen mit Python 3 1 Effizienz Effizient
MehrEinstieg in die Informatik mit Java
1 / 31 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 31 1 Überlegungen zur Effizienz 2 Landau-Symbole 3 Eier im Korb 4 Zyklische
MehrAlgoDat Fragen zu Vorlesung und Klausur
AlgoDat Fragen zu Vorlesung und Klausur Hochschule Fulda FB AI Sommersemester 2018 http://ad.rz.hs-fulda.de Peter Klingebiel, HS Fulda, AI Vorab: Was ist wichtig? AlgoDat - Fragen - Peter Klingebiel -
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 011 Übungsblatt 30. Mai 011 Grundlagen: Algorithmen und Datenstrukturen
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
MehrBeispielprüfung CuP WS 2015/2016
Beispielprüfung CuP WS 2015/2016 Univ.-Prof. Dr. Peter Auer 23. Dezember 2015 Informationen zur Prüfung Die Prüfung wird als Multiple-Choice-Test mit 10 Fragen am Computer abgehalten. (Bei manchen Fragen
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Suchen und Amortisierte Analyse Heute: Suchen / Schreibtischtest Amortisierte Analyse Nächste
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]
MehrKapitel 2: Analyse der Laufzeit von Algorithmen Gliederung
Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs
Mehr(08 - Einfache Sortierverfahren)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (08 - Einfache Sortierverfahren) Prof. Dr. Susanne Albers Sortieren Motivation, Einführung Datenbestände müssen sehr oft sortiert werden, etwa um
MehrVolker Kaatz. Faktorisierung. Faktorisierung. Problem und Algorithmen. Relevanz in der Kryptographie
Faktorisierung Problem und Algorithmen Relevanz in der Kryptographie Inhalt Begriff Faktorisierung Algorithmen (Übersicht) Strategie und Komplexität Pollard p-1 Algorithmus Pseudocode, mathematische Basis,
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrAlgorithmen und Datenstrukturen Wintersemester 2004/ November T(n) = T(n a) + T(a) + n
Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
Mehr