我需要一种可以非常快速地处理小型集合(10-20 个字符串,最多 50 个,长度不一)的数据结构。假阳性是可以的,但假阴性则不行。
最后一个要求使布隆过滤器看起来很合适,但我不确定它们的速度,还有其他建议吗?
编辑:集合只需要支持插入+成员测试。
最佳答案
使用 for 循环通过 String.Equals
检查成员资格的字符串数组怎么样?
对于集合这种小而奇特的数据结构可能会产生过多的开销,而 big-oh 不适用。您是否尝试过做最简单的事情并对其进行测量?
(如果误报没问题,您还可以保留例如 1024 个 bool 值的数组,您可以通过仅查看前两个字符的最低 5 位来计算字符串的糟糕“散列”,从而得到 10 位 bool 数组的索引。看起来这只是几条指令长。)
关于c# - 小型集合的快速数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2617968/