Datenstrukturen. Mariano Zelke. Sommersemester 2012

Größe: px
Ab Seite anzeigen:

Download "Datenstrukturen. Mariano Zelke. Sommersemester 2012"

Transkript

1 Datenstrukturen Mariano Zelke Sommersemester 2012

2 Mathematische Grundlagen: Das Handwerkszeug Mariano Zelke Datenstrukturen 2/26 Formeln: n - i = n (n+1) 2 und - i=1 k i=0 a i = ak+1 1 a 1, falls a 1 Rechnen mit Logarithmen: Es gelte a, b > 1 und x, y > 0 seien reelle Zahlen. Dann ist 1. log a (x y) = log a x + log a y 2. log a (x y ) = y log a (x) 3. a log a x = x 4. log a x = (log a b) (log b x) 5. b log a x = x log a b

3 Die asymptotische Notation Mariano Zelke Datenstrukturen 3/26 f, g : N R 0 seien Funktionen, die einer Eingabelänge n N eine nicht-negative Laufzeit f (n), bzw. g(n) zuweisen. Die Groß-Oh Notation: f = O(g) Es gibt eine positive Konstante c > 0 und eine natürliche Zahl n 0 N, so dass f (n) c g(n) für alle n n 0 gilt: f wächst höchstens so schnell wie g. f = Ω(g) g = O(f ) : f wächst mindestens so schnell wie g. f = Θ(g) f = O(g) und g = O(f ) : f und g wachsen gleich schnell. Die Klein-Oh Notation: f = o(g) lim langsamer als g. n f (n) g(n) = 0: f wächst g(n) f = ω(g) lim n f (n) = 0: f wächst schneller als g.

4 Asymptotik Mariano Zelke Datenstrukturen 4/26 Der Grenzwert der Folge f (n) g(n) 1. Wenn c = 0, dann ist f = o(g) 2. Wenn 0 < c <, dann ist f = Θ(g) 3. Wenn c =, dann ist f = ω(g) 4. Wenn 0 c <, dann ist f = O(g) 5. Wenn 0 < c, dann ist f = Ω(g) f (n) möge existieren und es sei lim n g(n) = c.

5 Wachstums-Hierarchie Mariano Zelke Datenstrukturen 5/26 Es seien a > 1, b > 1 und k > 1 Konstanten. Dann bilden die folgenden Funktionen von N >0 nach R 0 eine Wachstumshierarchie: n! b n n k n log 2 n n n 1/k log a n log (k) a n 1 wächst asymptotisch schneller

6 Das Lösen von Rekursionsgleichungen Mariano Zelke Datenstrukturen 6/26 Mastertheorem: Die Rekursion T (1) = c, T (n) = at ( n b ) + t(n) ist zu lösen, wobei b > 1, a 1, c > 0. - Wenn t(n) = O ( n (log b a) ε) für eine positive Konstante ε > 0, dann ist T (n) = Θ(n log b a ) - Wenn t(n) = Θ(n log b a ), dann ist T (n) = Θ(n log b a log b n) - Wenn t(n) = Ω ( n (log a)+ε) b für eine positive Konstante ε > 0 und a t ( ) n b αt(n) für eine Konstante α < 1, dann ist T (n) = Θ(t(n)) Wann ist es anwendbar? Wann nicht? (Beispiel: Türme von Hanoi) Was tun, wenn nicht?

7 Laufzeitbestimmung von C++ Programmen Mariano Zelke Datenstrukturen 7/26 Zuweisungen: Eine Zuweisung zu einer einfachen Variablen ist einfach zu zählen, eine Zuweisung zu einer Array-Variablen ist mit der Länge des Arrays zu gewichten. Auswahl-Anweisungen: Häufig genügt: Bedingung + Gesamtaufwand für den längsten der alternativen Anweisungsblöcke. Schleifen: Häufig genügt: Maximale Anzahl der auszuführenden Anweisungen innerhalb einer Schleife Anzahl der Schleifendurchläufe

8 Elementare Datenstrukturen: Listen, Stacks und Queues Mariano Zelke Datenstrukturen 8/26 Listen passen sich der Größe der zu speichernden Datenmenge dynamisch an. Wenn die Position eines einzufügenden oder zu entfernenden Elements bekannt ist, dann gelingt die Operation schnell. Muss nach der Position gesucht werden, dann ist die Laufzeit fürchterlich. Die Adjazenzlistendarstellung von Graphen ist eine wichtige Anwendung. Stacks: Einfügen und Entfernen des jüngsten Elements, beide Operationen gelingen schnell. Stacks finden zum Beispiel in der Implementierung der Rekursion eine wichtige Anwendung. Queues: Einfügen und Entfernen des ältesten Elements, beide Operationen gelingen schnell. Queues modellieren Warteschlangen. Eine wichtige Anwendung ist die Implementierung der Breitensuche. Deques: Verallgemeinern Stacks und Queues

9 Bäume Mariano Zelke Datenstrukturen 9/26 Als gerichteter Graph: alle Knoten müssen von der Wurzel aus erreichbar sein; zusätzlich hat jeder Knoten höchstens eine eingehende Kante Als ungerichteter Graph: ein Baum ist ein zusammenhängender, kreisfreier Graph Wichtige Datenstrukturen: Vater-Array (wenn nur das Hochklettern im Baum unterstützt werden muss), Binärbaum-Darstellung, Kind-Geschwister-Implementierung (wenn ein schneller Zugriff auf die Kinder erforderlich ist) Bäume können zum Beispiel mit dem Präorder-, Postorder- und Inorder-Verfahren durchlaufen werden. Die Verfahren sind schnell: Zeit O(n) für Bäume mit n Knoten Anwendungen dieser Verfahren sind zum Beispiel die Berechnung der Tiefe des Baumes, bzw. die Berechnung der Anzahl der Blätter

10 Graphen Tiefensuche Adjazenzlistendarstellung: für viele Anwendungen (z.b. das Navigieren in Graphen) ausreichend. Vorteile: schnelle Bestimmung aller Nachbarn bzw. aller direkten Nachfolger Tiefensuche void tsuche(int v){ Knoten *p; besucht[v] = 1; for (p = A[v]; p!=0; p = p->next) if (!besucht [p->name]) tsuche(p->name);} Ein Aufruf von Tiefensuche für Knoten w, bei ausschließlich unmarkierten Knoten, besucht alle von w aus erreichbaren Knoten Tiefensuche für Graphen G = (V, E) ist schnell: Laufzeit O( V + E ). Die Baumkanten definieren den Wald der Tiefensuche. Ungerichtete Graphen besitzen neben den Baumkanten nur Rückwärtskanten. Gerichtete Graphen besitzen Baum- und Vorwärtskanten sowie Rückwärts- und rechts-nach-links Querkanten. Mariano Zelke Datenstrukturen 10/26

11 Anwendungen der Tiefensuche Mariano Zelke Datenstrukturen 11/26 Ungerichtete Graphen: Schnelle Antwort auf die Fragen, ob ein Graph ein Baum, ein Wald oder zusammenhängend ist Die Bäume des Waldes der Tiefensuche entsprechen den Zusammenhangskomponenten des Eingabegraphen. Gerichtete Graphen: Schnelle Antwort auf die Fragen, ob ein Graph azyklisch oder stark zusammenhängend ist, bzw. die Berechnung einer topologischen Sortierung

12 Breitensuche für Graphen G = (V, E) ist schnell: Zeit O( V + E ) Ein Aufruf von Breitensuche für Knoten w erzeugt über die Baumkanten einen Baum kürzester Wege vom Startknoten w zu allen von w aus erreichbaren Knoten Anhand dieses Baumes der Breitensuche lassen sich Rückwärts- und Querkanten in G klassifizieren. Mariano Zelke Datenstrukturen 12/26 Graphen Breitensuche void Breitensuche(int v){ Knoten *p; int w; queue q; for (int k =0; k < n ; k++) besucht[k] = 0; q.enqueue(v); besucht[v] = 1; while (!q.empty( )){ w = q.dequeue( ); for (p = A[w]; p!= 0; p = p->next) if (!besucht[p->name]){ q.enqueue(p->name); besucht[p->name] = 1;}}}

13 Prioritätswarteschlangen insert, delete max, change priority, remove. Heaps speichern die Prioritäten mit Heap-Struktur und Heap-Ordnung ab. Insbesondere: die an Knoten v abgespeicherte Priorität ist den von den beiden Kindern gespeicherten Prioritäten: Größte Priorität also an der Wurzel! Heap-Struktur garantiert, dass der Heap n Prioritäten durch n aufeinanderfolgende Zellen abspeichern kann. Insbesondere: wenn die Priorität des Knotens v in Position i abgespeichert ist, dann wird die Priorität des linken Kindes in Position 2 i und die Priorität des rechten Kindes in Position 2 i + 1 gespeichert. Die Priorität des Vaters befindet sich in Position i/2. Die einzelnen Operationen werden mit Hilfe der Operationen repair up und repair down implementiert. Sämtliche Operationen auf einem Heap mit n Prioritäten benötigen nur Laufzeit O(log 2 n). Mariano Zelke Datenstrukturen 13/26

14 Anwendung von Prioritätswarteschlangen Mariano Zelke Datenstrukturen 14/26 Implementierung zahlreicher Algorithmen, typischerweise: falls wiederholt kleinste oder größte Schlüssel zu bestimmen und Aktualisierungsschritte auszuführen sind Fundamentales Beispiel: die Implementierung des Algorithmus von Dijkstra Weitere Beispiele: Implementierungen der Algorithmen für minimale Spannbäume Prim Kruskal (hier auch: Union-Find-Datenstruktur) Heapsort

15 Der abstrakter Datentyp Wörterbuch Mariano Zelke Datenstrukturen 15/26 insert(x), remove(x) und lookup(x). Binäre Suchbäume: speichern die Schlüssel in den Knoten eines Binärbaums. Wesentlich: die binäre Suchbaumordnung: alle im linken Teilbaum eines Knoten v gespeicherten Schlüssel sind kleiner als der von v gespeicherte Schlüssel ist. Alle im rechten Teilbaum von v gespeicherten Schlüssel sind größer. Mit der binären Suchbaumordnung kann ein Schlüssel schnell gefunden werden, indem die namensgebende Binärsuche durchgeführt wird. Die Dauer einer lookup-operation/remove-operation im worst-case proportional zur Tiefe. die Tiefe eines binären Suchbaums mit n Schlüsseln ist log 2 n im best-case, n 1 im worst-case und O(log 2 n) im Erwartungswert.

16 AVL-Bäume Mariano Zelke Datenstrukturen 16/26 Ein AVL-Baum ist ein binärer Suchbaum mit Höhenbalancierung In der Höhenbalancierung wird verlangt, dass sich, für jeden Knoten v, die Höhe des linken und rechten Teilbaums von v um höchstens eins unterscheiden. Die lookup-operation wird wie für binäre Suchbäume mit binärer Suche ausgeführt. Die remove-operation wird im Wesentlichen umgangen und durch eine lazy remove -Operation ersetzt. Links- und Rechtsrotationen sind die wesentlichen Hilfsmittel in der Ausführung der insert-operation. Während im Zick-Zick und Zack-Zack Fall nur eine Rotation pro Iteration auszuführen ist, müssen im Zick-Zack und Zack-Zick Fall zwei Rotationen ausgeführt werden. Die Ausführungszeiten von insert, remove und lookup sind für einen AVL-Baum mit n Schlüsseln durch O(log 2 n) beschränkt.

17 Hashing Mariano Zelke Datenstrukturen 17/26 Der Auslastungsfaktor λ = n m spielt eine wichtige Größe: n ist die Anzahl der in der Hashtabelle eingefügten Schlüssel und m ist die Größe der Hashtabelle. Hashing mit Verkettung alle Kollisionen, also alle Schlüssel x mit Hashwert h(x) = i, werden in eine sortierte Liste eingefügt. Die erwartete Länge einer Liste ist durch 1 + λ beschränkt und damit ist die erwartete Laufzeit einer insert, remove oder lookup-operation durch O(1) + λ beschränkt. Eine erfolgreiche Hashfunktion ist h(x) = x mod m. Hier sollte m eine Primzahl sein, die genügend weit von einer Zweierpotenz entfernt ist.

18 Hashing mit offener Addressierung Es wird direkt in die Tabelle gehasht. Benutze dazu eine Folge h 0, h 1,..., h m 1 von Hashfunktionen: Ist der ite Versuch des Einfügens von Schlüssel x an Position h i (x) nicht erfolgreich gewesen, dann wird die Position h i+1 (x) im nächsten Versuch getestet. Insbesondere verwendet man die folgende Daumenregel: Ist der Auslastungsfaktor auf 1 2 angestiegen, dann lade die Tabelle in eine neue Tabelle doppelter Größe. Im linearen Austesten verwendet man die Folge h i (x) = (x + i) mod m im doppelten Hashing benutzt man Hashfunktionen f (x) = x mod m und g(x) = m (x mod m ) und setzt h i (x) = (f (x) + i g(x)) mod m. Im linearen Austesten besteht die Gefahr der Klumpenbildung, allerdings sind die einzelnen Hashfunktionen wesentlicher schneller auswertbar als für das doppelte Hashing. Mariano Zelke Datenstrukturen 18/26

19 Klausur am 27. Juli, 9 Uhr, Hörsaal HV und HVI Mariano Zelke Datenstrukturen 19/26 Denken Sie an eine rechtzeitige Anmeldung. Seien Sie pünktlich zu 9:00 Uhr. Sie dürfen ein handschriftlich beidseitig beschriebenes DIN A4-Blatt als Hilfsmittel mitbringen. Sie müssen mitbringen: dokumentenechten schwarzen oder blauen Stift, einen gültigen Lichtbildausweis (z.b. Ihre Goethe-Card oder Ihren Personalausweis) Sie dürfen nicht benutzen: eigenes Schreibpapier, Skript, Taschenrechner, eingeschaltetes Handy Sitzordnung wird von uns kurz vorher bekannt gegeben.

20 Klausur im WS 2012/13 am 1.10., 9 Uhr in Hörsaal HV Mariano Zelke Datenstrukturen 20/26 Diese Klausur kann unabhängig von der Teilnahme an der ersten Klausur mitgeschrieben werden. Informationen dazu (Wiederholungsveranstaltungen etc.) finden Sie einige Wochen vorher auf der Homepage.

21 Klausurvorbereitung Mariano Zelke Datenstrukturen 21/26 Der Stoff der Vorlesung bis einschließlich 3.7. ist klausurrelevant. Wiederholen Sie die Übungsaufgaben. Schauen Sie sich die alten Klausuren hinten im Skript an. Nutzen Sie auch das Logbuch auf der Webseite für einen Überblick über die Themen. Am 17., 18., 23. und 24. Juli finden Helpdesk-Termine der Tutoren statt. Die genauen Termine und Orte finden Sie auf der Homepage. Dort finden Sie auch bald die Liste der Bonuspunkte. Prüfen Sie dann Ihren Eintrag!

22 C++-Code vs. Pseudocode I Mariano Zelke Datenstrukturen 22/26 Tiefensuche void tsuche(int v){ Knoten *p; besucht[v] = 1; for (p = A[v]; p!=0; p = p->next) if (!besucht [p->name]); tsuche(p->name); } Dieser C++-Code könnte als Pseudocode so geschrieben werden: tsuche(zahl v) 1 besucht[v] = true; 2 for jeden Knoten p in A[v] der Reihenfolge nach do 3 if besucht[name von p] = false then 4 tsuche(name von p);

23 C++-Code vs. Pseudocode II Mariano Zelke Datenstrukturen 23/26 Der schon bekannte Pseudocode für Algorithmus A 4 : (1) Max 1 = Max 1 = a 1. (2) Für k = 1,..., n 1 setze Max k+1 = max{max k + a k+1, a k+1 } und Max k+1 = max{max k, Max k+1 }. (3) Max n wird ausgegeben. Das reicht als Beschreibung des Algorithmus aus, wenn klar ist, dass die Eingabe aus n Zahlen a 1, a 2,..., a n besteht.

24 C++-Code vs. Pseudocode III Mariano Zelke Datenstrukturen 24/26 Der schon bekannte Pseudocode für Matrixaddition mit einfach verketteten Listen: (1) Beginne jeweils am Anfang der Listen L A und L B. (2) Solange beide Listen nicht leer sind, wiederhole (a) das gegenwärtige Listenelement von L A (bzw. L B ) habe die Koordinaten (i A, j A ) (bzw. (i B, j B )). (b) Wenn i A < i B (bzw. i A > i B ), dann füge das gegenwärtige Listenelement von L A (bzw. L B ) in die Liste L C ein und gehe zum nächsten Listenelement von L A (bzw. L B ). (c) Wenn i A = i B und j A < j B (bzw. j A > j B ), dann füge das gegenwärtige Listenelement von L A (bzw. L B ) in die Liste L C ein und gehe zum nächsten Listenelement von L A (bzw. L B ). (d) Wenn i A = i B und j A = j B, addiere die beiden Einträge und füge die Summe in die Liste L C ein. Die Zeiger in beiden Listen werden nach rechts bewegt. (3) Wenn die Liste L A (bzw. L B ) leer ist, kann der Rest der Liste L B (bzw. L A ) an die Liste L C angehängt werden. Das reicht als Beschreibung aus, wenn das Format der Eingabe klar ist.

25 C++-Code vs. Pseudocode IV Mariano Zelke Datenstrukturen 25/26 Der Algorithmus von Prim läuft auf einem Graphen G = (V, E) mit V = {0, 1,..., n 1}. Dafür ist der folgende Pseudocode schon bekannt: (1) Setze S = {0}. (2) Solange S V, wiederhole: (a) Bestimme eine kürzeste kreuzende Kante e = {u, v}. (b) Füge e zu B hinzu. (c) Wenn u S, dann füge v zu S hinzu. Ansonsten füge u zu S hinzu. Das reicht als Beschreibung des Algorithmus aus, vorausgesetzt, es wird klar gemacht, wie die kreuzenden Kanten verwaltet werden, so dass die kürzeste davon schnell gefunden werden kann.

26 C++-Code vs. Pseudocode V Mariano Zelke Datenstrukturen 26/26 Der folgende schon bekannte Pseudocode beschreibt insert(x) bei Hashing mit offener Adressierung: Wir arbeiten mit einer Folge von Hashfunktionen. Setze i = 0. h 0,..., h m 1 : U {0,..., m 1} (1) Wenn die Zelle h i (x) frei ist, dann füge x in Zelle h i (x) ein. (2) Ansonsten setze i = i + 1 und gehe zu Schritt (1). Das reicht als Beschreibung aus, wenn klar ist, dass auf einem Array mit Zellen 0, 1,..., m 1 gearbeitet wird und wie die Hashfunktionen aussehen.

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Graphen: Datenstrukturen und Algorithmen

Graphen: Datenstrukturen und Algorithmen Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.

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

Datenstrukturen: Mathematische Grundlagen. 26. Juli / 27

Datenstrukturen: Mathematische Grundlagen. 26. Juli / 27 Datenstrukturen: Mathematische Grundlagen 26. Juli 2015 1 / 27 Asymptotik Die Groß-Oh Notation: f = O(g) Es gibt eine positive Konstante c > 0 und eine natürliche Zahl n 0 N, so dass f (n) c g(n) für alle

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

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

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

Keller, Schlangen und Listen. Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14

Keller, Schlangen und Listen. Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14 Keller, Schlangen und Listen Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14 Listen Listen unterstützen die Operationen Lookup, Insert, Remove. + Listen passen sich der Größe der zu speichernden

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

Breiten- und Tiefensuche in Graphen

Breiten- und Tiefensuche in Graphen Breiten- und Tiefensuche in Graphen Inhalt Theorie. Graphen. Die Breitensuche in der Theorie am Beispiel eines ungerichteten Graphen. Die Tiefensuche in der Theorie am Beispiel eines gerichteten Graphen

Mehr

EndTermTest PROGALGO WS1516 A

EndTermTest PROGALGO WS1516 A EndTermTest PROGALGO WS1516 A 14.1.2016 Name:................. UID:.................. PC-Nr:................ Beachten Sie: Lesen Sie erst die Angaben aufmerksam, genau und vollständig. Die Verwendung von

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung)

Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung) Goethe-Universität Frankfurt am Main 27. Juli 2012 Institut für Informatik Theorie komplexer Systeme Dr. Mariano Zelke Datenstrukturen (SoSe 12) Klausur (Modulabschlussprüfung) Name: Vorname: Studiengang:

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

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

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls

Mehr

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative

Mehr

Algorithmische Mathematik

Algorithmische Mathematik Algorithmische Mathematik Wintersemester 2013 Prof. Dr. Marc Alexander Schweitzer und Dr. Einar Smith Patrick Diehl und Daniel Wissel Übungsblatt 6. Abgabe am 02.12.2013. Aufgabe 1. (Netzwerke und Definitionen)

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Wie wird ein Graph dargestellt?

Wie wird ein Graph dargestellt? Wie wird ein Graph dargestellt? Für einen Graphen G = (V, E), ob gerichtet oder ungerichtet, verwende eine Adjazenzliste A G : A G [i] zeigt auf eine Liste aller Nachbarn von Knoten i, wenn G ungerichtet

Mehr

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut. Binäre Suchbäume Tries (Folie 182, Seite 58 im Skript) In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut. In Tries entspricht die ite Verzweigung dem iten Zeichen des Schlüssels.

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?

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

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Name:... Vorname:... Matrikel-Nr.:... Unterschrift:...

Name:... Vorname:... Matrikel-Nr.:... Unterschrift:... Studiengang Bachelor of Computer Science Modulprüfung Praktische Informatik 1 Wintersemester 2010 / 2011 Name:... Vorname:... Matrikel-Nr.:... Unterschrift:... Hinweise: 1.) Schreiben Sie Ihren Namen und

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

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen 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

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Tiefensuche: Die globale Struktur Der gerichtete oder ungerichtete Graph G werde durch seine Adjazenzliste A repräsentiert. Im Array besucht wird vermerkt,

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

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

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20. Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.

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

Graphic Coding. Klausur. 9. Februar 2007. Kurs A

Graphic Coding. Klausur. 9. Februar 2007. Kurs A Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

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

Algorithmentheorie. 13 - Maximale Flüsse

Algorithmentheorie. 13 - Maximale Flüsse Algorithmentheorie 3 - Maximale Flüsse Prof. Dr. S. Albers Prof. Dr. Th. Ottmann . Maximale Flüsse in Netzwerken 5 3 4 7 s 0 5 9 5 9 4 3 4 5 0 3 5 5 t 8 8 Netzwerke und Flüsse N = (V,E,c) gerichtetes Netzwerk

Mehr

Statistische Untersuchungen zu endlichen Funktionsgraphen

Statistische Untersuchungen zu endlichen Funktionsgraphen C# Projekt 1 Name: Statistische Untersuchungen zu endlichen Funktionsgraphen Aufgabe: Basierend auf dem Abschnitt 2.1.6. Random mappings, Kap.2, S 54-55, in [1] sollen zunächst für eine beliebige Funktion

Mehr

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Algorithmen und Datenstrukturen. Große Übung vom 29.10.09 Nils Schweer

Algorithmen und Datenstrukturen. Große Übung vom 29.10.09 Nils Schweer Algorithmen und Datenstrukturen Große Übung vom 29.10.09 Nils Schweer Diese Folien Braucht man nicht abzuschreiben Stehen im Netz unter www.ibr.cs.tu-bs.de/courses/ws0910/aud/index.html Kleine Übungen

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

8 Diskrete Optimierung

8 Diskrete Optimierung 8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Über Arrays und verkettete Listen Listen in Delphi

Über Arrays und verkettete Listen Listen in Delphi Über Arrays und verkettete Listen Listen in Delphi Michael Puff mail@michael-puff.de 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung 3 2 Arrays 4 3 Einfach verkettete Listen 7 4 Doppelt verkettete

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Mathematischer Vorbereitungskurs für Ökonomen

Mathematischer Vorbereitungskurs für Ökonomen Mathematischer Vorbereitungskurs für Ökonomen Dr. Thomas Zehrt Wirtschaftswissenschaftliches Zentrum Universität Basel Gleichungen Inhalt: 1. Grundlegendes 2. Lineare Gleichungen 3. Gleichungen mit Brüchen

Mehr

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

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

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x), Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«... Drucken - Druckformat Frage Wie passt man Bilder beim Drucken an bestimmte Papierformate an? Antwort Das Drucken von Bildern ist mit der Druckfunktion von Capture NX sehr einfach. Hier erklären wir, wie

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

Modellbildungssysteme: Pädagogische und didaktische Ziele

Modellbildungssysteme: Pädagogische und didaktische Ziele Modellbildungssysteme: Pädagogische und didaktische Ziele Was hat Modellbildung mit der Schule zu tun? Der Bildungsplan 1994 formuliert: "Die schnelle Zunahme des Wissens, die hohe Differenzierung und

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

AutoTexte und AutoKorrektur unter Outlook verwenden

AutoTexte und AutoKorrektur unter Outlook verwenden AutoTexte und AutoKorrektur unter Outlook verwenden Die Hilfsmittel "AutoKorrektur" und "AutoTexte", die schon unter Microsoft Word das Arbeiten erleichtern, sind natürlich auch unter Outlook verfügbar.

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

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

Zur drittletzten Zeile scrollen

Zur drittletzten Zeile scrollen 1 Fragen und Antworten zur Computerbedienung Thema : Zur drittletzten Zeile scrollen Thema Stichwort Programm Letzte Anpassung Zur drittletzten Zeile scrollen Scrollen VBA Excel 1.02.2014 Kurzbeschreibung:

Mehr

Kurs 1613 Einführung in die imperative Programmierung

Kurs 1613 Einführung in die imperative Programmierung Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i

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

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

Mehr

Erstellen der Barcode-Etiketten:

Erstellen der Barcode-Etiketten: Erstellen der Barcode-Etiketten: 1.) Zuerst muss die Schriftart Code-39-Logitogo installiert werden! Das ist eine einmalige Sache und muss nicht zu jeder Börse gemacht werden! Dazu speichert man zunächst

Mehr

Java-Programmierung mit NetBeans

Java-Programmierung mit NetBeans Java-Programmierung mit NetBeans Steuerstrukturen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Steuerstrukturen Steuerstrukturen Verzweigungen Alternativen abweisende nichtabweisende

Mehr

Klausur zur Vorlesung Stochastische Modelle in Produktion und Logistik im SS 2010

Klausur zur Vorlesung Stochastische Modelle in Produktion und Logistik im SS 2010 Leibniz Universität Hannover Wirtschaftswissenschaftliche Fakultät Institut für Produktionswirtschaft Prof. Dr. Stefan Helber Klausur zur Vorlesung Stochastische Modelle in Produktion und Logistik im SS

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Guten Morgen und Willkommen zur Saalübung!

Guten Morgen und Willkommen zur Saalübung! Guten Morgen und Willkommen zur Saalübung! 1 Wie gewinnt man ein Spiel? Was ist ein Spiel? 2 Verschiedene Spiele Schach, Tic-Tac-Toe, Go Memory Backgammon Poker Nim, Käsekästchen... 3 Einschränkungen Zwei

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

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen 5.2. entenrechnung Definition: ente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren entenperiode = Zeitabstand zwischen zwei entenzahlungen Finanzmathematisch sind zwei

Mehr

Ü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

DAP2-Klausur 07.08.2004

DAP2-Klausur 07.08.2004 DAP2-Klausur 07.08.2004 Vorname : Familienname: Ich studiere (Bitte markieren): Informatik/Inform. Lehramt/Inf.technik/Physik/ Mathe/Statistik/Sonstiges: Bitte beachten: Auf jedem Blatt Matrikelnummer

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

Wie Sie mit Mastern arbeiten

Wie Sie mit Mastern arbeiten Wie Sie mit Mastern arbeiten Was ist ein Master? Einer der großen Vorteile von EDV besteht darin, dass Ihnen der Rechner Arbeit abnimmt. Diesen Vorteil sollten sie nutzen, wo immer es geht. In PowerPoint

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen. Programmierung des Farbsteuergeräts 340-00112 für Nikobus Diese Bedienungsanleitung gilt auch für die Nikobus-Produkte 340-00111 und 340-00113. Achtung: einige der aufgeführten Betriebsarten sind nur auf

Mehr

Vorabversion. Schulung am 06.08.13. www.winterhoff.de. Homepage Administration und Pflege

Vorabversion. Schulung am 06.08.13. www.winterhoff.de. Homepage Administration und Pflege Vorabversion Schulung am 06.08.13 www.winterhoff.de Homepage Administration und Pflege 1. Anmeldung auf der Homepage Die Anmeldung auf der Homepage erfolgt über den nachfolgenden Link durch Eingabe des

Mehr

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen? Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen können zwei Ebenen (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen? Wie heiÿt

Mehr

Viele Bilder auf der FA-Homepage

Viele Bilder auf der FA-Homepage Viele Bilder auf der FA-Homepage Standardmäßig lassen sich auf einer FA-Homepage nur 2 Bilder mit zugehörigem Text unterbringen. Sollen es mehr Bilder sein, muss man diese als von einer im Internet

Mehr

Approximation durch Taylorpolynome

Approximation durch Taylorpolynome TU Berlin Fakultät II - Mathematik und Naturwissenschaften Sekretariat MA 4-1 Straße des 17. Juni 10623 Berlin Hochschultag Approximation durch Taylorpolynome Im Rahmen der Schülerinnen- und Schüler-Uni

Mehr

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen 1. Quadratische Gleichungen Quadratische Gleichungen lassen sich immer auf die sog. normierte Form x 2 + px + = 0 bringen, in

Mehr

Programmentwicklungen, Webseitenerstellung, Zeiterfassung, Zutrittskontrolle

Programmentwicklungen, Webseitenerstellung, Zeiterfassung, Zutrittskontrolle Version LG-TIME /Office A 8.3 und höher Inhalt 1. Allgemeines S. 1 2. Installation S. 1 3. Erweiterungen bei den Zeitplänen S. 1;2 4. Einrichtung eines Schichtplanes S. 2 5. Einrichtung einer Wechselschicht

Mehr

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein. Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen

Mehr

Nutzerhandbuch Zentrale Klassenverwaltung

Nutzerhandbuch Zentrale Klassenverwaltung Nutzerhandbuch Zentrale Klassenverwaltung Nutzerhandbuch Zentrale Klassenverwaltung...1 1. Allgemeines...2 2. Startseite...2 3. Posteingang...2 4. Klassenübersicht...3 4.1. Klassendetailansicht...4 4.2.

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr