“上述静态简洁位向量实现把原位串与目录合计控制在 (n+o(n)) bit;这不是“零辅助空间”。Access 可由两次 rank 得到,但常数因子与可更新性并不等价。第 (k) 个 1 不存…”
形式陈述
目标与端点
对位串
本文 rank 使用半开前缀,合法位置为
两级索引与微表
每
select 不能从 rank 的常数界自动得到,通常还要按每若干个 1 采样位置,并对稠密/稀疏区间分别查表或显式存储。
直觉
位串本体已经用了最直接的
例子与边界
文本索引例子
用位串标记一组按顺序连接的非空文档起点,首位标为
空间与动态边界
RRR类别与偏移编码进一步改变位串本体:每块先存1数,再用组合秩指定类内排列。导航同时记录累计1数和可变负载起点;含
推论与应用
rank/select 把位串分成大块、小块和微块,微块查询由四俄罗斯方法与字级并行预计算或字内操作完成;表大小必须是 o(n),否则常数查询会牺牲简洁空间。
Select 的长短区间
对 rank 做二分可以找到第
这种表示是简洁数据结构的一个具体例子:信息论意义上的 succinct 是“表示长度等于对象最优编码加低阶冗余”,不是一般文件压缩。查询索引、全局共享表是否计入空间及 word size 都要在声称
Rank 查询真正读取什么
把位置
共享微表还要包含各位型的所有块内偏移,因此其总大小为
参考资料
- Guy Jacobson, Space-Efficient Static Trees and Graphs, FOCS, 1989.
- Rajeev Raman, Venkatesh Raman, Srinivasa Rao, Succinct Indexable Dictionaries, TALG, 2007.