5

我整个晚上都没能计算出一个简单的移位表,用于搜索用于Boyer 和 Moore 模式匹配算法的搜索词“anabanana” 。

我发现以下示例没有任何解释: 在此处输入图像描述

任何人都可以帮助我理解和解释图像查找班次表的方法吗?

4

1 回答 1

3

我想我明白这里做了什么,所以我会试着解释一下。

“Wort”行是您正在分析的模式,(在我看来)不需要考虑上面的“Text”行。相反,假设在您的模式中从左到右包含从零开始的字符位置的附加行。所描绘m的图案的长度是 9。下面的每一行 I 命名其中 i 是右侧的索引p[]p_i[]

进一步的解释基于2

在模式下方的下排标记与上述模式中的字符匹配的所有字符。(在这里划掉)

for i=1 to m do
    search in the rows below for a subpattern where p[m-i]<>p_j[m-1] (*)
    and p[m-i+1, ..., m-1]=p_j[m-i+1, ..., m-1]
    index j is your shift value for shift[i]
od  

(*) 注意:当移位的模式p_j向右移动太远时,将有空字符进行比较。在这种情况下,您可以随时假设==<>根据需要。始终使用所有可能的最小值j

各种步骤的示例

我希望这会有所帮助,尽管有点晚了。

于 2013-10-05T00:08:37.000 回答