工程化Burstsort:迈向快速原地字符串排序
1. 缓存感知与缓存无关算法
在字符串排序领域,缓存感知算法虽然能根据特定机器参数发挥最佳性能,但缺乏可移植性。与之相对,缓存无关设计理念提出了高可移植性的算法。尽管缓存无关模型有一些简化假设,但它仍是分析分层内存中数据结构的有吸引力且简单的模型。近期研究表明,基于该模型开发的算法能与缓存感知实现相媲美。此外,外部内存领域的相关技术不一定能很好地应用于内存内算法。
2. 研究目标与贡献
实用字符串排序的目标是开发一种快速且理想情况下为原地的算法,使其在现实世界的数据集和机器上高效运行。为此,我们对Burstsort进行了优化,具体如下:
1. 重新设计P - Burstsort的桶 :大幅减少索引结构的内存需求。
2. 引入移动字段方法 :将trie节点的字段移至桶中字符串即将插入的位置,每次插入字符串时该字段随之移动,进一步减少内存使用。这些内存减少技术对速度影响可忽略不计,也适用于基于复制的Burstsort变体。
3. 提高桶排序的缓存效率 :在排序前将字符串后缀复制到小字符串缓冲区,确保频繁访问字符串时的空间局部性。
3. 论文组织
- 第2节 :展示桶的重新设计如何显著减少内存浪费,使算法接近原地算法。
- 第3节 :说明在排序前对桶中的字符串进行缓冲可使运行时间进一步降低30%。
- 第4
超级会员免费看
订阅专栏 解锁全文

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



