Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Boyer Moore Algorithmus

  Alt 5. Jun 2013, 08:25
Hi,

Ich kann es nicht belegen, aber laut Recherche sind die Delphi-Boyer-Moore-Implementierungen im Netz fehlerhaft. Ob das für den JsTextSearch-Code gilt, kann ich nicht sagen.

Aber was hält dich davon ab, es erst einmal mit einer einfachen Implementierung zu versuchen?

Delphi-Quellcode:
Function CountWords (Const text, wort : String) : Integer;
Var
  i : Integer;

Begin
  i:=1;
  Result := 0;
  repeat
    i := StrUtils.PosEx(wort,text,i)+1;
    if i>1 then inc(Result) else exit;
  until false
End;
Es verwendet 'PosEx', welches einen Teilstring ab einer bestimmten Stelle sucht. Nach dem Finden des Wortes wird dessen Position + 1 als nächste Anfangsposition verwendet. Das kann man alles natürlich noch verbessern, aber für den Anfang sollte es reichen.

Superduperschnell ist es nicht, aber benötigst du unbedingt BM? Und wenn ja, dann vermutlich besser QuickSearch, Horspool o.ä.
  Mit Zitat antworten Zitat