代码之家  ›  专栏  ›  技术社区  ›  Paddy3118

用数据结构加速内存中标记对象的搜索基于标记的布尔函数?

  •  6
  • Paddy3118  · 技术社区  · 14 年前

    如果我有一组标记(<100)和一组对象(~25000),其中每个对象都有一些标记子集,那么您知道现有的数据结构允许快速检索满足标记布尔函数的那些对象吗?

    现在我已经写下了我的问题,看起来好像我在描述一个内存中的数据库,但最初我考虑的是对象的某种二叉树结构,对于每个分支,使用左/右分支相当于决定have/have not some标记。但这不允许不关心标签?我问,因为我想知道这是否已经做过,并发现很难谷歌的数据结构。

    • 提前谢谢-帕迪。
    2 回复  |  直到 14 年前
        1
  •  6
  •   Miserable Variable    14 年前

    这里有一个建议:为每个标记使用一个位数组,元素的数量和对象的数量一样多;每个索引代表一个对象。如果对象具有该标记,则每个索引处的值为1。

    标签上的布尔函数就是这个位数组上的快速设置操作。得到的位数组给出了满足条件的文档。

    如果标签或对象经常更改,这不是很有效,但可能适用于您。

        2
  •  0
  •   Juha Syrjälä    14 年前

    你需要多快?您的布尔函数有多复杂,即在一个典型函数中使用了多少个标记?