我在理解Boyer Moore字符串搜索算法时遇到了问题.
我正在关注以下文件.链接
我无法确定delta1和delta2的确切含义,以及它们如何应用于查找字符串搜索算法.语言看起来有点模糊..
如果有人可以帮助我理解这一点,那将非常有帮助.
或者,如果您知道任何其他易于理解的链接或文档,请分享.
提前致谢.
我需要编写有效且快速的方法来搜索给定模式的字节数组.我这样写,你怎么想,怎么改进?它有一个bug,它不能返回长度为1的匹配.
public static bool SearchByteByByte(byte[] bytes, byte[] pattern)
{
bool found = false;
int matchedBytes = 0;
for (int i = 0; i < bytes.Length; i++)
{
if (pattern[0] == bytes[i] && bytes.Length - i >= pattern.Length)
{
for (int j = 1; j < pattern.Length; j++)
{
if (bytes[i + j] == pattern[j])
{
matchedBytes++;
if (matchedBytes == pattern.Length - 1)
{
return true;
}
continue;
}
else
{
matchedBytes = 0;
break;
}
}
}
}
return found; …Run Code Online (Sandbox Code Playgroud)