Pad*_*118 6 algorithm data-structures
如果我有一组标签(<100)和一组对象(~25000),其中每个对象都有一些标签的子集,你知道一个现有的数据结构,可以快速检索那些满足标签的布尔函数的对象?
标签和对象的添加/删除不需要特别快,但是应该选择具有满足布尔函数的标签的那些对象.
现在我已经写下了我的问题,看起来好像我正在描述一个内存数据库,但最初我正在考虑一些二进制树状结构的对象,对于每个分支,采用左/右分支将相当于决定有/没有一些标签.但这不会允许不关心标签?我问,因为我想知道这是否已经完成,并发现很难谷歌的数据结构.
这是一个建议:为每个标签使用一个位数组,其中包含与对象一样多的元素; 每个索引代表一个对象.如果该对象具有该标记,则每个索引的值为1.
然后,标签上的布尔函数在该位阵列上进行快速设置操作.生成的位数组为您提供满足条件的文档.
如果标签或对象经常变化但这可能适用于您,则效率不高.
| 归档时间: |
|
| 查看次数: |
824 次 |
| 最近记录: |