Immer wieder ist es notwendig, zwei Strings miteinander zu vergleichen und festzustellen, wie ähnlich sie sich sind. Hierzu gibt es verschiedene Möglichkeiten, z. B. könnte man einfach die Länge beider Strings vergleichen oder ob sie die gleichen Buchstaben enthalten. Etwas komplizierter wird es, wenn man der Reihenfolge der Buchstaben eine Bedeutung zumisst. Dann könnte man prüfen, ob es eine Sequenz von Buchstaben gibt, die in beiden Strings in der gleichen Reihenfolge vorkommen. Die längste dieser Sequenzen ist die Longest Common Subsequence. Oder man überlegt sich, wie viele Editier-Operationen (Einfügen, Löschen, Ersetzen) notwendig sind, um aus dem ersten String den zweiten zu erzeugen. In diesem Artikel geht es um diese Algorithmen. weiterlesen
Kategorie: Scala
Erfahrungen bei der Programmierung mit Scala.
Maven Multi-Project mit Scala-Projekten erstellen
Ab einer gewissen Projektkomplexität ist es sinnvoll, Teilprojekte zu erstellen. Das gilt natürlich auch für die Software-Entwicklung mit Maven.
Obwohl es doch einfach sein sollte, in Eclipse ein solches Maven-Multi-Projekt zusammen mit Teilprojekten zu erstellen, gibt es einige Stolperfallen hierbei. In diesem Artikel möchte ich in einfachen Schritten das Vorgehen darstellen. weiterlesen
Splay Tree
Mich interessieren insbesondere Algorithmen, die adaptiv reagieren, d. h. sich den Anforderungen anpassen können. Hierzu zählen nicht nur Neuronale Netze sondern auch die Verarbeitung von Datenmengen, zu denen auch der Splay Tree gehört. weiterlesen
Rekursion – Fluch oder Segen?
In der normalen Welt der Programmierung, also mit imperativen Sprachen wie C, C++, Java usw. findet die rekursive Programmierung selten Anwendung. Statt dessen werden Schleifen eingesetzt, um Abläufe zu wiederholen. Dieser Artikel soll eine Lanze für die Rekursion brechen, denn der resultierende Code ist elegant und ausdrucksstark. weiterlesen
Hashing
Es gibt bereits viele Implementierungen von Hash-Tabellen, jedoch leiden viele darunter, dass das häufige Löschen von Einträgen zu einer deutlichen Performance-Verschlechterung führt. Deshalb habe ich einen Algorithmus aus dem Jahr 1989 genommen, um eine eigene Implementierung in Scala zu erstellen. Beschrieben wird der Algorithmus im Journal of Algorithms, Volume 10, 1989 im Artikel Hash table collision resolution with direct chaining von Gary D. Knott und Pilar De La Torre. weiterlesen
Heap / Heapsort
Ich möchte meinen ersten Beitrag über eine alte Datenstruktur namens Heap schreiben. Die bekannteste Anwendung ist sicherlich der Heapsort-Algorithmus, jedoch gibt es noch andere Einsatzgebiete, auf die ich eingehen werde. weiterlesen