Markus
Ganzenmüller
Marcus Stegner
Steve Moser
Peter Novotnik
Datenstrukturen und Algorithmen, die Hand in Hand fungieren und die theoretische wie auch die praktische Informatik begleiten, aber auch in der Mathematik ihre Existenz wiederfinden, sind genau genommen essentiell für die Informatik und sind aus dieser Wissenschaft nicht wegzudenken. Oft wird die Wichtigkeit der Algorithmen und der mit ihnen zusammenhängenden Datenstrukturen von vielen ``Informatikneulingen'' unterschätzt. Es sei jedoch gesagt, daß gerade dieses Gebiet unter anderen die Informatik ausmacht. Trotz Bibliotheken, welche zu Hauf in der heutigen Zeit zum Angebot stehen, ist es für alle Programmierer jeglicher Art unersetzlich wichtig, Algorithmen zu verstehen und Datenstrukturen zu kennen, sofern diese effizient Problemlösungen gestalten wollen. Beispiele für Datenstrukturen sind überall zu finden. Man braucht sich nur umsehen. Die Wissenschaft erfaßt die Natur strukturell, Menschen strukturieren ihre Probleme, die Philosophie operierte schon sehr früh (ca. 500 v. Chr.) mit zwei unterschiedlichen Denkstrukturen, jedes Programm stützt sich mehr oder weniger auf Strukturen in algorithmischer Art, ...
Trotz des großen Angebots an Büchern und anderer Literatur zu diesem Themengebiet, entschloßen sich Markus Ganzenmüller, Steve Moser, Marcus Stegner und Peter Novotnik von der FH Augsburg des Fachbereichs Informatik, ein eigenes Werk der Problematik zu widmen. Die kurze jedoch berechtigte Frage lautet einfach: ``Wieso diese zusätzliche Arbeit?''. Genau genommen, gibt es hier zwei Antworten. Zum einen ist mit diesem Werk eine Möglichkeit gegeben worden, eine frühere Aufgabe aus vorherigem Semester zu vervollständigen. Der andere Grund liegt im Entgegekommen von Prof. Burkhard Stork, der den Studenten dieses Werk als eine Praktikumsaufgabe anerkennt und ihnen somit die nötige Zeit verschafft hat. An dieser Stelle ein großes Danke. Weiterhin hatten die Studenten in diesem Zusammenhang die Möglichkeit ein professionelles Textformatierungssystem kennenzulernen. Die hier vorliegende Dokumentation ist volltändig mit LATEX, das Freeware ist, erstellt worden, und ist somit in mehreren Formaten erhältlich.
Die Intention in dieser Niederschrift, liegt einfach in der Auseinandersetzung mit bekannten Algorithmen, die einen Standardstatus besitzten und somit jedem Informatiker zumindest bekannt sein müßten. Dieses Werk ist als eine Art ``von Studenten für Studenten'' Referenz gedacht, wobei sie sich natürlich für jeden Interessierten eignet. Die Resourcen für die Themen waren etliche Bücher, das Internet sowie eigene Tests und Auseinandersetzungen mit den Algorithmen. Obwohl sehr viel Arbeit und Zeit in dieses Projekt fließen und die hier niedergeschriebenen Texte nach bestem Gewissen erstellt worden sind, bleibt die Möglichkeit nicht aus, daß bestimmte Details fehlen oder untergehen. Deswegen bleibt die Empfehlung eines ``offiziellen'' Algorithmenbuchs an die Interessierten nicht aus. Dennoch haben sich die Autoren entschlossen gewisse Passagen auszuarbeiten, die in Büchern oft nicht erwähnt werden und somit solche ergänzen sollen.
Parallel zu dieser Referenz entsteht ein Programm, das vollständig in C geschrieben ist, und als eine Testplattform dienen soll. Da die Autoren unterschiedliche Bestriebssysteme auf ihren Rechnern verwenden, wurde davon abgesehen spezielle Bibliotheken zu verwenden, um das Programm GUI-fähig zu machen. Sie einigten sich darauf, diese Platform ANSI-gerecht zu halten und sich auf die Algorithmen zu konzentrieren. Auch eine relativ einfache Erweiterung des Programms beim Hinzunehmen neuer Algorithmen und Datenstrukturen ist eines der Ziele. Es bleibt jedoch immer noch die Frage offen, wieso man sich gerade für C entschieden hat. C ist sehr einfach zu erlernen und bietet dem Programmierer sehr große Perspektiven hinsichtlich des Programmierbaren. C++, Java, C# oder andere objektorientierte Sprachen wurden vermieden, um nicht eine Diskusion der Klassenkonzipierung zu entfachen, was nicht heißt, daß die hier vorgestellten Codebeispiele nicht in solchen Sprachen implementiert werden können oder daß in C geschriebene Programme nicht objektorientiert sind. Neben dem ANSI-Code ist auch eine Applikation für das PalmOS geschrieben worden, um den Interessierten eine Visualisierung der Algorithmen zu ermöglichen.
Das Testprogramm, die Palm-Applikation sowie auch die gesammte Dokumentation ist zwar nach bestem Gewissen erstellt worden, jedoch übernimmt keiner der Autoren Haftung für explizit oder implizit verursachte Fehler, die möglicherweise in diesem Projekt enthalten sind und zu Schäden führen könnten. Die Autoren sind für jegliches Feedback dankbar.
Offizielle Projektseite:
http://sourceforge.net/projects/sort4palmos
Download Section:
http://sourceforge.net/project/showfiles.php?group_id=41174
Foren:
http://sourceforge.net/forum/?group_id=41174