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

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

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

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

Liebe Leserin und lieber Leser,

in meinem Blog möchte ich mich mit Themen rund ums Programmieren beschäftigen. Dabei stehen Themen, für die ich mich aktuell interessiere, im Vordergrund, z. B.:

  • Algorithmen
  • Programmiersprachen wie Java und Scala
  • Entwicklungsumgebungen, vornehmlich Eclipse

Ich möchte in kurzen Beiträgen Aspekte dieser Themen hervorheben, die evtl. nicht allgemein bekannt sind oder praktische Umsetzungen für Themen darstellen, die an anderer Stelle eher theoretisch behandelt werden. Da ein Blog nur so gut ist, wie die Kommentare seiner Leser, bitte ich euch um eure Mitwirkung! Bitte schreibt mir eure Meinung zu den Beiträgen, bleibt aber bitte höflich und konstruktiv.

Viel Spaß beim Lesen
wünscht euch Bernd