中文

逆序数自适应与近似计数的新结果

数据结构与算法 2016-12-28 v1

摘要

逆序数计数是数据库中一个经典且重要的问题。列表 L=(L(1),L(2),,L(n))L=(L(1),L(2),\ldots,L(n)) 中的逆序数 KK^* 定义为满足 i<ji < jL(i)>L(j)L(i) > L(j) 的数对个数。本文给出了该问题的新结果:(1) 在 I/O 模型中,提出了一种计算 KK^{*} 的自适应算法。该算法执行 O(NB+NBlogM/B(KNB))O(\frac{N}{B}+ \frac{N}{B}\log_{M/B}(\frac{K^*}{NB})) 次 I/O。当 K=O(NM)K^{*}=O(NM) 时,该算法仅需 O(NB)O(\frac{N}{B}) 次 I/O。该算法可修改以匹配基于比较模型和 RAM 模型的最新水平。(2) 在 RAM 模型中,提出了一种线性时间算法以获得 KK^* 的紧估计;具体而言,得到一个以高概率落在区间 [(1logNN1/4)K,(1+logNN1/4)K][(1-\frac{\log N}{N^{1/4}})K^*,(1+\frac{\log N}{N^{1/4}})K^*] 内的值。目前最先进的线性时间算法仅适用于 LL 为排列的特殊情况,即每个 L(i)L(i)[1,N][1,N] 范围内的不同整数。本文处理了一般情况,即每个 L(i)L(i) 为实数。

关键词

引用

@article{arxiv.1612.08097,
  title  = {New Results for Adaptive and Approximate Counting of Inversions},
  author = {Saladi Rahul},
  journal= {arXiv preprint arXiv:1612.08097},
  year   = {2016}
}