【发布时间】:2016-05-24 19:45:36
【问题描述】:
我正在尝试快速检测 C# 中 BitArrays 之间的冲突(使用 AND 布尔运算),这会产生一个表示重叠区域的 BitArray。
显然,如果结果数组仅包含零,则不会发生冲突。检查这个的最快方法是什么?简单的迭代太慢了。我不在乎冲突在哪里,或者有多少——只是在数组中的某个地方有一个非零值。
似乎应该有某种快速的情况,类似于“将整个位数组转换为一个 int 值”(这特别不起作用,因为 BitArrays 是可变大小的),但我想不出一个出去。
【问题讨论】:
-
你有没有考虑过不使用 BitArrays 而只使用 int?
-
如果你自己实现这个,也可以避免在发生碰撞的情况下计算整个交叉点,并且不需要空间来存储交叉点。
BitArray无论如何是一个相当缓慢的实现。 -
大家的好主意。感谢您的帮助!
标签: c# arrays algorithm collision bitarray