© whiteMocca/Shutterstock.com
Teil 1: Algorithmen als Kernelemente des Programms - Definition und Klassen

Algorithmen in der Java-Praxis


Am Anfang der Ausbildung oder des Studiums hat man sich intensiv mit Algorithmen beschäftigt. Man hat etwas über formale Anforderungen gehört und die Verfahren in Lösungsklassen eingeteilt. Danach rücken die Fragen rund um Algorithmen meist in den Hintergrund, obwohl deren Anwendung und Entwicklung der Kern einer jeden Software sind. Zeit, die Grundlagen und neuere Entwicklungen auf den aktuellen Stand zu bringen.

Ein Algorithmus beschreibt ein Verfahren, um ein bestimmtes Problem zu lösen. Bekannte Algorithmen aus der alltäglichen Programmierpraxis sind zum Beispiel Such- und Sortieralgorithmen. Neben bekannten und seit Langem etablierten Verfahren aus dieser Klasse gibt es hier auch einige neue Entwicklungen, die zum Beispiel paralleles Rechnen, d. h. die Verteilung der Arbeitslast auf mehrere Prozessoren bzw. Rechenkerne, einbeziehen. In einer vierteiligen Artikelserie wollen wir uns dem spannenden Thema Algorithmen in Theorie und Praxis nähern und neben der Auffrischung von bekanntem Wissen auch neue Entwicklungen untersuchen. Das Thema des ersten Teils ist es, Grundlagen zu Algorithmen ins Gedächtnis zurückzurufen. Wir beginnen mit den formalen Anforderungen an einen Algorithmus, sehen uns die Einteilung in Klassen an und besprechen das Vorgehen für ein eigenes Lösungsverfahren. Spezifische Algorithmen wie Such- und Sortierverfahren stehen im zweiten Teil auf der Agenda. Im dritten Teil wird es um die Fragen gehen, wie übergeordnete Algorithmen, sogenannte Metaheuristiken, dazu eingesetzt werden, sehr komplexe Probleme zu lösen. Sie kommen zum Einsatz, wenn der Lösungsraum so groß ist, dass das komplette Durchsuchen im Lösungsraum eine zu große Zeitspanne beanspruchen würde. Hier lenkt man den Algorithmus nach bestimmten Kriterien in ein passendes Suchfeld, um eine möglichst gute Lösung zu finden.

Die Algorithmen werden wir in Pseudocode und/oder Java darstellen. Der abschließende Teil der Serie wird sich mit ausgewählten Java-Bibliotheken beschäftigen, die i...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang