中文

一种更新和查询多维数组子数组的新算法

数据结构与算法 2016-08-05 v6

摘要

给定一个 dd 维数组 AA,更新操作将给定常数 CC 加到 AA 的连续子数组内的每个元素上。查询操作计算 AA 的连续子数组内所有元素的总和。一维更新和查询处理问题已被深入研究,通常使用带有延迟传播技术的线段树来解决。本文提出了一种结合二叉索引树 (Binary Indexed Trees) 和容斥原理 (Inclusion-Exclusion Principle) 的新算法来完成相同任务。我们将该算法扩展至更新和查询矩阵(二维数组)的子矩阵。最后,我们提出了该算法的 dd 维通用形式,其更新和查询的时间复杂度均为 O(4dlogdn)\mathcal{O}(4^d*\log^{d}n)。这优于先前已知的利用四叉树和八叉树等分层数据结构的算法,后者的每次更新/查询的最坏情况时间复杂度为 Ω(nd1)\Omega(n^{d-1})

关键词

引用

@article{arxiv.1311.6093,
  title  = {A New Algorithm for Updating and Querying Sub-arrays of Multidimensional Arrays},
  author = {Pushkar Mishra},
  journal= {arXiv preprint arXiv:1311.6093},
  year   = {2016}
}

备注

14 Pages, 3 Figures, 1 Table