最右边的 n 个整数的总数
我正在 Haskell 中实现 Bagwell 的理想哈希特里。要在子特里树中查找元素,他说要执行以下操作:
求符号 s 的弧, 需要找到其对应的位 位图中,然后计数 地图中其下方一位 计算有序索引 子特里树。
最好的方法是什么?听起来最简单的方法是选择该位下面的位 并对结果数字进行人口计数。有没有更快或更好的方法来做到这一点?
I'm implementing Bagwell's Ideal Hash Trie in Haskell. To find an element in a sub-trie, he says to do the following:
Finding the arc for a symbol s,
requires finding its corresponding bit
in the bit map and then counting the
one bits below it in the map to
compute an index into the ordered
sub-trie.
What is the best way to do this? It sounds like the most straightforward way of doing this is to select the bits below that bit and do a population count on the resulting number. Is there a faster or better way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的。特别是,mask 和 popcount 可以变得非常高效。 作用如下:
......
Clojure 实现的
这是我在 我在 Haskell 中的实现中所做的事情:
Yes. In particular, mask and popcount can be made to be quite efficient. Here is what the Clojure implementation does:
...
...
Here is what I did in my implementation in Haskell: