public static int ByteIndexOf(byte[] searched, byte[] find, int start)
{
bool matched = false;
int end = find.Length - 1;
int skip = 0;
for (int index = start; index <= searched.Length - find.Length; ++index)
{
matched = true;
if (find[0] != searched[index] || find[end] != searched[index + end]) continue;
else skip++;
if (end > 10)
if (find[skip] != searched[index + skip] || find[end - skip] != searched[index + end - skip])
continue;
else skip++;
for (int subIndex = skip; subIndex < find.Length - skip; ++subIndex)
{
if (find[subIndex] != searched[index + subIndex])
{
matched = false;
break;
}
}
if (matched)
{
return index;
}
}
return -1;
}
本文介绍了一个用于在字节数组中查找指定字节序列的算法实现。该算法通过逐个比较元素来确定目标序列的位置,并采取了跳过部分比较以提高效率的方法。适用于需要在大量数据中快速定位特定模式的应用场景。
6932





