排列与二元关系的自适应数据结构及版本化文档的文档列表问题
在数据处理和信息检索领域,排列与二元关系的表示以及版本化文档的文档列表问题是重要的研究方向。下面将详细介绍相关的处理方法和技术。
二元关系的表示
对于二元关系 (B),在网格中若 (i) 与 (j) 在 (B) 中相关,则标记对 ((i, j))。设 (\sigma) 为行数,(n) 为列数,(t) 为 (B) 中的对数。假定所有行和列至少有一个元素,若接受空行/列,可添加长度为 (n + \sigma) 的位图来支持秩、选择和访问操作。主要关注以下三种操作:
1. 遍历 (rowselect_B(i, p = 1 \ldots rowcount_B(i)));
2. 遍历 (colselect_B(i, p = 1 \ldots colcount_B(i)));
3. 获取 ([i_1, i_2] \times [j_1, j_2]) 中的所有对(即 (relrange_B))。
之前章节的技术不能直接应用于此,因为链可能包含同一行或列的多个元素,会在位图的同一位置产生多条链。接下来介绍两种表示方法。
使用排列表示二元关系
通过简单的行/列添加算法将二元关系转换为排列,该算法移动点并能回答感兴趣的查询。主要思路是对有多个点的行和列创建多个副本,然后将点分布在这些副本上,使每个副本只有一个点,从而形成 (t) 个元素的排列。这在空间上效率不高,但能匹配排列结构的性能。为提取原始信息,需添加 (2t + o(t)) 位,存储在 (B_1) 和 (B_2) 中,这两个位图以一元形式表示每个扩展行/列的长度。利用这两个位图,可在常数时间内计算 (rowco
超级会员免费看
订阅专栏 解锁全文
1102

被折叠的 条评论
为什么被折叠?



