我有一大组固定长度的字节数组,例如:
type Fixed [64]byte
set := make([]Fixed, 10240)
这些条目中的大多数都有不同的5-7字节前缀。如何根据给定的前缀实现有效的方法来查找set
元素?例如:
set.Find([7]byte{ /*...*/ }) == /* no hit || single hit || multiple hit */
发布于 2013-05-27 05:07:23
看起来你需要一个trie。
您可以将您的集合存储为trie,并给出一个前缀,您将一直向下并到达一个节点。然后,您只需遍历以此节点为根的子树,即可获得所有项目。
发布于 2013-05-27 18:17:19
如上所述,trie对你有好处。你也可以使用哈希表,关键字将是前7-8个字节(可以使用长整型),访问时间是O(1),我认为实现起来更简单。
https://stackoverflow.com/questions/16763678
复制相似问题