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

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