KLASSISCHE PROGRAMMIERTECHNIK Eine Sammlung der hervorragendsten Algorithmen

Ähnliche Dokumente
Robert Sedgewick. Algorithmen in Java. Teil 1-4 Grundlagen Datenstrukturen Sortieren Suchen. Java-Beratung durch Michael Schidlowsky

Technische Universität München SoSe 2018 Fakultät für Informatik, I Juli 2018 Dr. Stefanie Demirci. Aufgabe 1 Sortieren mit Heap Sort

Grundlagen der Informatik

Robert Sedgewick. Algorithmen in Java. »il 1-4 Grundlagen Datenstrykturen Sortleren Suchen. java-beratung durch Michael Schidlowsky

Inhaltsverzeichnis. Teil 1 Grundlagen 23

Inhaltsverzeichnis. Danksagungen... 11

Algorithmen. Robert Sedgewick Princeton University ADDISON-WESLEY

1.1 Abstrakte Datentypen 1.2 Lineare Strukturen 1.3 Bäume 1.4 Prioritätsschlangen 1.5 Graphen

Inhaltsverzeichnis. Teil 1 Grundlagen 21. Teil 2 Datenstrukturen 85

Datenstrukturen Teil 1. Arrays, Listen, Stapel und Warteschlange. Arrays. Arrays. Array

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Effektiv Programmieren in С und C++

Inhalt Vorwort Mathematische Aufgaben

Datenstrukturen und Algorithmen (SS 2013)

Informatik II Prüfungsvorbereitungskurs

Algorithmen und Datenstrukturen

Bayes-Netze. Claudio Fischer Text- und Datamining (AG Digital Humanities)

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

Übung Algorithmen und Datenstrukturen

Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper

Einführung in die Informatik I

Algorithmen und Datenstrukturen. Organisatorisches. Christian Komusiewicz Ernst-Abbe-Platz 2, R3315

Algorithmen I - Tutorium 28 Nr. 9

Ralf Kirsch Uwe Schmitt. Programmieren inc. Eine mathematikorientierte Einführung. Mit 24 Abbildungen und 13 Tabellen. Springer

C-Tools. Werkzeuge für die Programmierung in C. Rainer v. Ammon/Markus Fröhlich

Inhalt. Einführung in die Strukturierte Programmierung 15

Informatik II, SS 2014

Informatik II Prüfungsvorbereitungskurs

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing

Inhaltsverzeichnis. 1 Grundlagen 1. 2 Einfache Programme 21

Informatik 1 ( ) D-MAVT F2010. Rekursion, Signaturen. Yves Brise Übungsstunde 8

Das Turbo Pascal Lösungsbu

Vorwort Einführung in Power Query Erste Abfrage erstellen... 21

Numerische Mathematik

Wiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute

Übung Algorithmen und Datenstrukturen

Inhaltsverzeichnis. Vorwort.11

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Mathematica kompakt. Einführung-Funktionsumfang-Praxisbeispiele von Dipl.-Math.Christian H.Weiß. Oldenbourg Verlag München

Logische Datenstrukturen

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

Übung Algorithmen und Datenstrukturen

Inhaltsverzeichnis. 7.9 Aufgaben...207

Zum Buch Hinweise Handhabung des Buchs Website In eigener Sache... 19

Algorithmen und Datenstrukturen

Informatik II - Übung 12

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Listen. Für die Verarbeitung von Listen durch den Rechner ist relevant:

NAME, VORNAME: Studiennummer: Matrikel:

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Programmiertechnik 1 FOR-SCHLEIFEN

Sprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren

Carlos Camino Grundlagen: Algorithmen und Datenstrukturen SS 2015

Inhaltsübersicht. Vorwort 15. Vorwort zur deutschen Ausgabe 22. Kapitel 1 Elemente der Programmierung 25. Kapitel 2 Funktionen und Module 203

Ein Algorithmus heißt rekursiv, wenn er sich selbst aufruft. Meist werden nur einzelne Module eines Gesamtalgorithmus rekursiv verwendet.

Bäume 1. Thomas Röfer

Algorithmen und Datenstrukturen

Datenstrukturen, Listen und Bäume

Algorithmen und Datenstrukturen

C- Kurs 09 Dynamische Datenstrukturen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Mehrdimensionale Arrays

4.2 Daten und Datenstrukturen

Algorithmen 1 Tutorium

Java-Grundkurs für Wirtschaftsinformatiker

Vorverarbeitung von Sensordaten

Inhaltsverzeichnis. Wilhelm Haager. Computeralgebra mit Maxima. Grundlagen der Anwendung und Programmierung. ISBN (Buch):

Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012

Teil VII. Hashverfahren

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Dynamische Datenstrukturen

Inhaltsverzeichnis Grundbegriffe der Programmierung Strukturelle Programmierung

Ordnung im Materiallager: Datenstrukturen II. Suchen und Sortieren im Array Verkettete Listen Rekursion

Programmiertechnik 1 FOR-SCHLEIFEN

11. Elementare Datenstrukturen

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Algorithmen & Komplexität

Inhalt. Vorwort zur dritten Auflage 11

Advanced Programming in C

Inhaltsverzeichnis. TEIL I: Einführung in EXCEL

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Entartete Suchbäume. Beispiel: Balancieren von Suchbaum. Wintersemester 2012/13

16. Dynamische Datenstrukturen

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Algorithmen und Datenstrukturen (für ET/IT)

Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1

Spezielle Datenstrukturen

Die С ++-Programmiersprache

Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek 25. März 2011

Rechner. Verlauf ansehen. Ausdruck teilen. Graph Gleichungen. OXY Seite öffnen. SCI/ENG Schreibweise. Eigene Gleichung zuweisen

Aufgaben zur Klausurvorbereitung

Organisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Definition Feld. Definition Feld

Karlsruher Institut für Technologie. Klausur Algorithmen I

Tabellenverzeichnis. 1 Einleitung 1. I Grundlagen der Arbeit mit Mathematica 5. 2 Erste Schritte in Mathematica 7

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

4.4.2 Virtuelles Hashing Erweiterbares Hashing Das Gridfile Implementation von Hashverfahren in Java

Wilhelm Haager. Computeralgebra. mit Maxima. Grundlagen der Anwendung und Programmierung. Fachbuchverlag Leipzig. im Carl Hanser Verlag

DAP2-Klausur

Aufgabensammlung aus Mathematik 2 UMIT, SS 2010, Version vom 7. Mai 2010

Transkript:

KLASSISCHE PROGRAMMIERTECHNIK Eine Sammlung der hervorragendsten Algorithmen Ian Oliver. PRENTICE HALL NEW YORK LONDON TORONTO SYDNEY TOKIO SINGAPUR MÜNCHEN MEXICO

Vorwort Danksagung XI XV 1 Einführung 1 1.1 Das Ziel des Buchs 1 1.2 Format 1 1.3 Testprogramme 3 1.4 Effizienz 4 1.5 Code 5 1.6 Speicherzuweisung 25 2 Arithmetik 27 2.1 Dezimal-Arithmetik Das Rechnen mit Zahlen, die als Zeichenketten dargestellt werden 28 2.2 Bruchrechnen Das Rechnen mit Zahlen, die als Bruch zweier Ganzzahlen dargestellt werden 40 2.3 Zahlenähnlichkeit Überprüfung, ob Fließkommazahlen annähernd" gleich sind 46 3 Zahlenspiele 51 3.1 Überprüfen von Ziffern Das Schützen einer Zahl mit sich selbst überprüfbaren J>rüf'-Ziffern 52

VI 3.2 Datumsumwandlung und Ostern Das Konvertieren des Datums in Ganzzahlen und umgekehrt 66 3.3 Römische Ziffern Das Umwandeln von römischen Ziffern in arabische Zahlen und umgekehrt 76 4 Permutationen und Kombinationen 81 Anmerkungen - Das Backtracking Wie man das kombinatorische Suchen effizienter gestaltet y 83 4.1 Produkte Das Berechnen des Werts der Fakultät mit Hilfe der zugehörigen Formeln 84 Anmerkungen die Rekursion Wie man herausfindet, wann nicht mit einer Rekursion gearbeitet werden soll 88 4.2 Verschachtelte Schleifen Die Simulation einer variablen Anzahl von Durchläufen ineinander verschachtelter Schleifenkonstrukte 90 Anmerkungen - unsichere Paßwörter Warum Paßwörter weniger effektiv sind, als allgemein erwartet 95 Anmerkungen - mehrdimensionale Tabellen Das Erzeugen einfacher Tabellen aus mehrdimensionalen Matrizen 96 4.3 Verschachtelte Summenbildung Das Berechnen von Unter-Untersummen aus Untersummen aus Summensystemen beliebiger Tiefe 99 4.4 Permutationen Das Generieren jeder möglichen Permutation gegebener Elemente 104 Anmerkungen - der Geschäftsreisende Wie man den kürzesten Weg zu einer Reihe von Städten findet 110 4.5 Kombinationen Das Generieren aller möglichen Kombinationen von Elementen, die aus mehreren gewählt werden 112

VII Anmerkungen - organisatorische Kommunikationsmuster Wie man die Cliquen" aus einer Gruppe mit Leuten herausfindet 117 5 Datenstrukturen 121 5.1 Die Stackmatrix Die Verarbeitung von Elementen in der Reihenfolge Last-In-First-Out (LIFO) mit Hilfe einer Matrixstruktur. 125 5.2 Die Queue-Matrix Die Verarbeitung von Elementen in der Reihenfolge First-In-First-Out (FIFO) mit Hilfe einer Matrixstruktur 128 5.3 Der Heap' Das Verarbeiten von Elementen in einer,ßufällig-hinein größten-hinaus"-folge 132 5.4 Liste mit freien Speicherblöcken Der Aufbau einer Liste mit frei verfügbaren Speicherplätzen 137 5.5 Die Listenimplementation des Stack Das Anordnen von Elementen in Last-In-First-Out (LIFO) Reihenfolge mit Hilfe der Liste mit freiem Speicher 142 5.6 Die Listenversion der Queue Wie man mit Hilfe einer Liste mit freien Speicherplätzen Elemente in einer First- In-First-Out (FIFO) Reihenfolge anordnen kann 147 5.7 Zweifach verkettete Listen Wie Elemente innerhalb einer linearen Liste in beiden Richtungen miteinander verkettet werden können 151 5.8 Die ausgeglichene Baumstruktur Wie Elemente auf effiziente Art in sortierter Reihenfolge angeordnet werden 161 6 Sortieren und Zusammenfügen 183 6.1 Der Sequenzalgorithmus Das Einbinden einer festen Anzahl von Elementen in eine sortierte Sequenz 185 6.2 Das Matrixsortieren Das Sortieren der Elemente einer Matrix mit einer Reihe unterschiedlicher Verfahren 189

VIII 7 Textverarbeitung 213 7.1 Das Soundex-Verfahren Das Codieren von Namen entsprechend ihrer phonetischen Zusammensetzung 215 7.2 Ähnlicher Text Wie man bestimmt, ob zwei Zeichenketten gleich oder ähnlich sind 219 7.3 Suchmuster Wie man Worte in einem Text findet 224 7.4 Das Suchen in Matrizen Das Finden eines Worts in einer Matrix mit Worten 228 7.5 Hashing Der Aufbau einer Tabelle für das schnelle Auffinden bestimmter Wörter 236 7.6 Die Trie-Struktur Das Generieren eines effizienten Index für eine Tabelle mit Wörtern 242 Anmerkungen - Datenkompression Das Komprimieren von Text mit einem einfachen, neuen Verfahren 250 8 Zufallszahlen 255 Anmerkungen - Das Gesetz von den Durchschnitten Die Antwort auf die Frage, ob das Gesetz der Durchschnitte eine erfahrbare Realität oder ein Mythos ist 258 8.1 Die Zufallszahlengeneratoren Das Erzeugen von Zufallszahlen mit unterschiedlichen Verteilungen 264 8.2 Die zufällige Auswahl Mischverfahren und das zufällige Auswählen einer Anzahl von Elementen aus einer größeren Menge 283 9 Die Finanzwelt 291 9.1 Finanzerklärungen Das effiziente Generieren einer Bilanzaufstellung und einer Gewinn- und Verlustrechnung 292

EX Anmerkungen - Das Journal Wie die Bücher für ein Unternehmen geführt werden 298 9.2 Kapitalströme Das Berechnen der effektiven Verzinsung und des aktuellen Werts 302 9.3 Kredite Das Bestimmen von Zinssätzen, Konditionen und Rückzahlungen 307 9.4 Die Nullstellenfunktion Wie man den Punkt findet, an dem eine Kurve die X-Achse schneidet 313 10 Das Aktualisieren von Dateien 317 10.1 Die serielle Aktualisierung von Arbeitsdateien Das Aktualisieren einer seriellen Arbeitsdatei unter Zuhilfenahme einer Transaktionsdatei 319 10.2 Die indizierte Aktualisierung Das Aktualisieren einer indizierten Masterdatei unter Zuhilfenahme einer Transaktionsdatei 324 10.3 Das dynamische Hashing Der Aufbau eines Index für Dateien variabler Größe 331 11 Matrizen 351 11.1 Lineare Gleichungssysteme Das Lösen von simultanen linearen Gleichungssystemen. 353 11.2 Stützpunktschritte Das Ausführen eines Schritts einer Matrixinvertierung... 360 Anmerkungen - das Bestimmen eines Unternehmenswerts Das Bestimmen des tatsächlichen Unternehmenswerts für sich anteilig gegenseitig besitzende Firmen 366 11.3 Die lineare Programmierung Das Herausfinden des besten Wegs, eine Aufgabe unter Berücksichtigung verschiedener Konditionierungen zu erledigen 368 11.4 Matrix-Grundwerte Das Bestimmen des dominanten Eigenwerts und des Eigenvektors einer Matrix 380

X Anmerkungen - Das Bestimmen gewichteter Kriterien Das Zuordnen von Gewichtungen für Entscheidungskriterien mit Hilfe einer relativ objektiven Methode 386 12 Das Anpassen von Kurven 389 12.1 Polynome Das Anpassen des Lagrangeschen Polynoms an eine Punktwolke 392 12.2 Der kubische Spline Das Verlegen einer glatten Kurve durch eine Punktwolke. 398 12.3 Die glatte Kurve Das optimierte Annähern einer Polynomkurve an eine Punktwolke 405 12.4 Die mehrfache, lineare Regression Das optimierte Anpassen einer Formel an mehrdimensionale Punktwolken 413 Anmerkungen - Das Usambaraveilchen Das Bestimmten der besten Zuchtmethode 421 13 Netzwerke 425 13.1 Das topologische Sortieren Wie man die Elemente eines Netzwerks in eine Reihenfolge bringt 428 13.2 Der kritische Pfad Wie man den längsten Pfad durch ein Netzwerk findet... 432 13.3 Die umfassende Baumstruktur Das Suchen nach dem kürzesten Baum, der jeden Knoten in ein Netz einbindet 436 Referenzen 443 Stichwortverzeichnis 449