Bitwise Trie查找如何工作

时间:2017-04-26 20:49:04

标签: algorithm data-structures full-text-search bit-manipulation trie

我最近一直在研究数据结构,并不断遇到" Bitwise Trie"&#39>

我知道如何运作,但我没有得到以下内容:

  1. 按位树节点的数据结构。
  2. 为了比较,一个简单的固定长度数组Trie的穷人实现看起来如下:

    public class Node
    {
        Node[] _nodes  = new Node[27]; // 26 = A-Z + NULL
    
        public Node Next(char c)
        {
            if (c == '$')
                return _nodes[26];
    
            return _nodes[c - 'A'];
        }
    }
    

    在'按位树'

    中会出现类似的情况

    修改

    关注@samsag评论,它正在计算前导零,而不是设置的位数!

    1. 如何统计" 1"位有帮助。
    2. e.g。让我们说比如说

      EOL   = 000 (0 bits set)    
      A     = 001 (1 bit set)
      B     = 010 (1 bit set)
      C     = 011 (2 bits set)
      D     = 100 (1 bit set)
      E     = 101 (2 bits set)
      F     = 111 (3 bits set)
      

      当有太多冲突时,位计数如何帮助? 我需要执行什么样的算法/散列/按位操作才能利用位计数?

0 个答案:

没有答案