HOME
Vorwort
Copyright© 2007
by Doina Logofătu
|
Vorwort
Viele
Problemstellungen dieses Buches habe ich bereits in meinem Buch Algorithmen und
Problemlösungen mit C++ behandelt,
das im letzten Jahr erschienen ist. Die
Theorie und die Problembeschreibungen sind größtenteils die
gleichen, geändert
haben sich natürlich die Programme und die Abschnitte, die sich
auf die
Programmiersprache beziehen. Neu in diesem Buch ist das erste Kapitel
über
Algorithmen und die Komplexitätstheorie und das vierte Kapitel Data Ordering
Problem, in dem ein
NP-vollständiges
Problem analysiert und mit verschiedenen Ansätzen gelöst
wird.
Hinzugekommen sind auch neue Probleme wie z. B. die Huffman-Codierung
im Greedy-Kapitel, Sudoku im Backtracking-Kapitel
und LCS (longest
common substring) im Kapitel über die Dynamische
Programmierung. Ich habe
die Problemstellungen und Erklärungen aus dem C++-Buch
überarbeitet und mir außerdem
ein paar zusätzliche Übungen ausgedacht. Wie im alten Buch
möchte ich jetzt
durch unterhaltsame Aufgaben Ihre Begeisterung und Ihre Neugier
für die
Informatik wecken und Ihnen die Fähigkeit vermitteln, für
neue Probleme eigene
Lösungen zu finden.
Grundlegende Algorithmen mit
Java beinhaltet in den
neun Kapiteln 60 Probleme bzw. Aufgaben, die vollständig
analysiert und in Java
gelöst werden, knapp 240 Übungsaufgaben und gut 130
Abbildungen und Bilder. Die
nötigen Grundlagen am Anfang jedes Kapitels ermöglichen einen
theoretischen
Überblick über die Thematik. Zu
jedem Problem wird beschrieben, wie die Eingabe- und Ausgabedateien
aufgebaut sind, und ein Beispiel dafür angegeben. Damit
können Sie
selbstgeschriebene Programme überprüfen. Dann folgt der
Abschnitt Problemanalyse und Entwurf der Lösung,
der
einen detaillierten algorithmischen/mathematischen Lösungsansatz
und ein Java-Programm
präsentiert. Die Programme sind kompakt und die
Schlüsselwörter in blauer Farbe,
um eine gute Lesbarkeit zu gewährleisten. Darum befinden sich auch
die Kommentare
meistens nicht direkt im Code, sondern daneben in blauen Kästchen.
Die
Programme sind mit dem JDK 1.6. kompiliert worden, den SUN
kostenlos zur
Verfügung stellt (http://java.sun.com/javase/downloads).
Zu jedem Problem gehören Übungen, die Sie meist auffordern,
Programme zu ändern
oder neue Programme zu schreiben, damit
Sie
das gerade Erlernte wiederholen können und ihre
Programmierfähigkeiten verbessern.
Alle Aufgaben bzw.
Probleme wenden die
am jeweiligen Kapitelanfang vorgestellten mathematischen Konzepte bzw.
algorithmischen Verfahren an und vertiefen sie. Die Absicht, die
dahinter
steht, ist die, dass Sie die Theorie dadurch erlernen, indem Sie sehen
und üben,
wie sie in der Praxis, also in den Problemen, eingesetzt wird. Viele
Probleme
sind klassisch, wie z. B. Fibonacci-Zahlen, Koch’sche
Schneeflockenkurve, Türme
von Hanoi, N-Damen, Haus des Nikolaus,
Kartenfärbung, Konvexe
Hülle, Multiplikation einer
Matrizenfolge und Edit-Distanz. Aufgaben aus den
Programmierwettbewerben Association for Computing Machinery
(ACM), International
Olympiad in Informatics (IOI) und Central-European
Olympiad in Informatics (CEOI) inspirierten
mich dazu, zahlreiche Probleme für
das Buch zu formulieren.
Ab und zu finden
Sie,
quasi als Belohnung für Ihren Fleiß, zwischen zwei Kapiteln
Überraschungsbilder
wie: Don Quijotes Windmühlen, Schwäne auf der Isar, Kapelle
in Dorohoi, Statue
in Bremen, Strandkörbe auf Norderney.
Den
Online-Service zum Buch finden Sie hier:
www.algorithmen-und-problemloesungen.de
Ich
bitte Sie, meine verehrten Leser, mir Ihre Anmerkungen, Lob und Kritik
zu senden:
Dafür
bedanke ich mich im Voraus.
Viel Vergnügen beim
Lesen und spannendes Lernen!
München, im August
2007
Doina Logofătu
www.doina-logofatu.de
|