在字节数组中查找短字节序列的位置

时间:2011-01-15 21:57:16

标签: .net vb.net arrays parsing bytearray

如何在字节数组中有效地找到四字节序列的第一个实例的位置?是否有比循环遍历整个数组或内置方法更有效的东西?

我在一个字节数组中搜索一对CrLF。我不能首先将它转换为InStr的字符串,因为我需要它在原始字节数组中的位置。

我试图找出它的位置,因为它在字符串部分和二进制部分之间划分,类似(好,就像它的这一部分一样)到HTTP头。在内容开始之前有一个字符串部分和两个CrLf

2 个答案:

答案 0 :(得分:1)

假设没有关于数据集(排序/特殊排序),你可以做的最好的是O(n)算法,这意味着要查看整个数组一次。

答案 1 :(得分:1)

你可以使用Boyer-Moore的算法,这比平均值更好。

HTH!